2009-06-25 17 views
39

Tengo un proyecto Haskell y Cabal paquete descripción que me permite construir e instalar mi paquete con¿Cómo puedo configurar una prueba simple con Cabal?

$ cabal configure 
$ cabal build 
$ cabal install

Pero ¿qué pasa con cabal test? La ayuda de Cabal dice que configure un banco de pruebas con UserHooks, pero ¿cómo puedo hacer eso?

Respuesta

27

Como Duncan menciona en la respuesta de Greg, Cabal-1.10 tiene soporte para conjuntos de pruebas fuera de la caja.

El manual parece tener la mejor información que he encontrado con respecto a cómo hacer uso de esto.

He aquí un fragmento del manual que muestra cómo utilizar el tipo exitcode-stdio prueba:

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 

ensayo foo.hs:

module Main where 

import System.Exit (exitFailure) 

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

Hmm, parece un error tipográfico en el manual. ¿No debería leer 'Cabal-Version:> = 1.10'? ¿O las antiguas cábalas lo ignorarán inofensivamente? –

+0

Err, no lo olvides, lo dice allí en el manual: "Usar secciones de suite de pruebas requiere al menos Cabal versión 1.9.2" –

+3

tenga en cuenta que para que las dependencias de la suite de pruebas * instalen *, debe ejecutar 'cabal install - -enable-tests'. Luego puede ejecutar 'cabal test' para ejecutar sus pruebas. –

10

Para un enfoque, vea Setting up a simple test with Cabal.

Este enfoque tiene inconvenientes, y hay un open Cabal ticket que sugiere poder especificar pruebas más directamente, p.,

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

Esta función estará en Cabal-1.10 –

+0

@ Duncan. Buenas noticias y genial que eres una estafa ¡contribuyendo aquí! –

Cuestiones relacionadas