2009-06-25 4 views
39

У меня есть проект Haskell и Cabal пакет-описание, которое позволяет мне построить и установить мой пакет сКак настроить простой тест с помощью Cabal?

$ cabal configure 
$ cabal build 
$ cabal install

Но как насчет cabal test? Помощник Кабала говорит, чтобы настроить тестовый набор с помощью UserHooks, но как я могу это сделать?

ответ

27

Как Дункан упомянул в ответе Грега, Кабалы-1,10 имеет поддержку для тестовых наборов из коробки.

manual, похоже, имеет самую лучшую информацию, которую я нашел относительно того, как это использовать.

Вот отрывок из руководства, который показывает, как использовать тип 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 

тест-foo.hs:

module Main where 

import System.Exit (exitFailure) 

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

Хмм, выглядит как опечатка в руководстве. Не следует ли читать «Cabal-Version:> = 1.10'? Или ранее кабалы безвредно игнорируют его? –

+0

Err, невзирая на это, он говорит прямо в руководстве: «Использование разделов тестового набора требует, по крайней мере, версии Cabal 1.9.2» –

+3

, обратите внимание, что для того, чтобы зависимости набора тестов к * install *, вы должны запустить 'cabal install - -enable-tests'. Затем вы можете запустить 'cabal test' для запуска своих тестов. –

10

Для одного подхода см. Setting up a simple test with Cabal.

Этот подход имеет недостатки, и есть open Cabal ticket, который предполагает возможность более прямого указания тестов, , например.,

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

Эта функция будет в Cabal-1.10 –

+0

@ Duncan Отличные новости и замечательные, что вы con трибуна здесь! –

 Смежные вопросы

  • Нет связанных вопросов^_^