2009-06-25 20 views
39

bana oluşturmak ve cabal test hakkındaCabal ile nasıl basit bir test yapabilirim?

$ cabal configure 
$ cabal build 
$ cabal install

Ama neye ile benim paketini yüklemeyi sağlayan bir Haskell projesi ve Cabal paket açıklaması var mı? Cabal'ın yardımı UserHooks ile bir test paketi yapılandırmayı söylüyor, ancak bunu nasıl yapabilirim?

cevap

27

Duncan Greg'in cevapta belirtildiği üzere, Cabal-1.10 kutudan testlerinden için desteği vardır.

manual, bunun nasıl kullanıldığına dair en iyi bilgiye sahip olduğumu düşünüyor.

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.hs:

module Main where 

import System.Exit (exitFailure) 

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

Hmm, kılavuzda bir yazım hatası gibi görünüyor. 'Cabal-Version:> = 1.10' okumamalı mıydı? Yoksa daha önceki kabileler zarar görmezden mi geliyor? –

+0

Err, Nevermind, bu kılavuzda hemen orada diyor ki: * * yüklemek için deney seti içindeki bağımlılıkları için sırayla, çalıştırmak gerektiğini –

+3

notu 'cabal yükle "test paketi bölüm kullanarak en az Cabal sürüm 1.9.2 gerektirir" - enable-tests'. Sonra testlerinizi çalıştırmak için 'cabal testini 'çalıştırabilirsiniz. –

10

bir yaklaşım için, Setting up a simple test with Cabal bkz.

Bu yaklaşımın dezavantajları vardır ve open Cabal ticket numaralı testler daha doğrudan doğruya test yapabilmeyi öneren örn.,

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

İşte

exitcode-stdio Test türünün nasıl kullanılacağını gösterir manuel parçacık İşte Bu özellik Cabal-1.10'da olacak. –

+0

@Duncan Harika haberler ve harikasınız burada haraç! –