¿Cómo puedo configurar una prueba simple con Cabal?


Tengo un proyecto Haskell y una descripción del paquete Cabal que me permite compilar e instalar mi paquete con

$ cabal configure
$ cabal build
$ cabal install

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

Author: Don Stewart, 2009-06-25

2 answers

Como Duncan mencionó en la respuesta de Greg, Cabal-1.10 tiene soporte para conjuntos de pruebas listos para usar.

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

Aquí hay un fragmento del manual que muestra cómo usar el tipo de prueba 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

Test-foo.je:

module Main where

import System.Exit (exitFailure)

main = do
    putStrLn "This test always fails!"
    exitFailure
 27
Author: Jacob Stanley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-16 19:41:25

Para un enfoque, ver Establecer una prueba simple con Cabal.

Este enfoque tiene inconvenientes, y hay un ticket open Cabal que sugiere ser capaz de especificar pruebas más directamente, por ejemplo, ,

test
  test-is: Test
  build-depends: QuickCheck
  hs-source-dirs: tests src
 10
Author: Greg Bacon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-25 15:25:26