2009-06-25 14 views
39

Ho un progetto Haskell e Cabal pacchetto-descrizione che mi permette di compilare e installare il mio pacchetto conCome posso impostare un semplice test con Cabal?

$ cabal configure 
$ cabal build 
$ cabal install

Ma per quanto riguarda cabal test? L'aiuto di Cabal dice di configurare una suite di test con UserHooks, ma come posso farlo?

risposta

27

Come Duncan menzionato nella risposta di Greg, Cabal-1.10 ha il supporto per dei test suite out of the box.

Il manual sembra avere le migliori informazioni che ho trovato su come utilizzarlo.

Ecco un frammento del manuale che illustra come utilizzare il tipo di test exitcode-stdio:

foo.cabal

Name:   foo 
Version:  1.0 
License:  BSD3 
Cabal-Version: >= 1.9.2 
Build-Type:  Simple 

Test-Suite test-foo 
    type:  exitcode-stdio-1.0 
    main-is: test-foo.hs 
    build-depends: base 

prova-foo.hs:

module Main where 

import System.Exit (exitFailure) 

main = do 
    putStrLn "This test always fails!" 
    exitFailure 
+0

Hmm, sembra un refuso nel manuale. Non dovrebbe leggere "Versione cabale:> = 1.10"? O le precedenti cabali lo ignorerebbero innocentemente? –

+0

Err, non importa, lo dice proprio nel manuale: "Usare le sezioni della suite di test richiede almeno Cabal versione 1.9.2" –

+3

nota che per le dipendenze della suite di test per * install *, devi eseguire 'cabal install - -enable-tests'. Quindi puoi eseguire 'cabal test' per eseguire i tuoi test. –

10

Per un approccio, vedere Setting up a simple test with Cabal.

Questo approccio presenta degli svantaggi, e c'è un open Cabal ticket che suggerisce di poter specificare i test più direttamente, , ad es.,

test 
    test-is: Test 
    build-depends: QuickCheck 
    hs-source-dirs: tests src 
+7

Questa funzione sarà disponibile in Cabal-1.10 –

+0

@Duncan Ottime notizie e fantastico che sei tributare qui! –

Problemi correlati