2016-06-04 13 views
0

Wie kann ich Testsuites in HSpec angeben? Ich werde mehrere *.hs Testdateien für jedes meiner Module haben und ich möchte einfach stack test laufen lassen und alle Tests laufen lassen. Wie stelle ich das auf?Einrichten einer Testsuite in HSpec

Ich habe versucht, die Testmodule wie dies in meinem Kabale Datei aufzulisten, aber es funktioniert nicht:

test-suite foo-test 
    type:    exitcode-stdio-1.0 
    hs-source-dirs:  test 
    main-is:    Spec.hs 
        , Mod1Spec.hs 
    build-depends:  base 
        , containers >= 0.5.6.2 
        , hqfl 
        , hspec >= 2.2.3 
        , hspec >= 2.2.3 
        , mtl >= 2.2.1 
        , pipes >= 4.1.8 
        , random >= 1.1 
    ghc-options:   -threaded -rtsopts -with-rtsopts=-N 
    default-language: Haskell2010 
+0

, warum Sie eine nicht verwenden der 'stack' Vorlagen? - BTW: ** was ** genau funktioniert nicht - erhalten Sie eine Fehlermeldung oder etwas? Können Sie Ihre Tests in Ghci ausführen? – Carsten

+0

Es gibt keine Fehlermeldung - Ich möchte nur, dass alle Spezifikationen automatisch ausgeführt werden, wenn ich den Stapeltest ausführen. Im Moment findet es keine anderen Spezifikationen außer Spec.hs, die ich in der Cabal-Datei angegeben habe. –

Antwort

2

Hier einige Dokumente auf HSPEC Test:

http://hspec.github.io/hspec-discover.html

Wenn Ihr Hauptspezifikationsmodul enthält nur die Zeilen:

{-# OPTIONS_GHC -F -pgmF hspec-discover #-} 

hspec-discover durchsucht den Verzeichnisbaum nach Spezifikationstests.

Auch - hier ist ein kleines HSPEC Beispiel:

https://github.com/hspec/hspec-example

+0

Ja - es ist. Ich löschte die Antwort, um es zu aktualisieren. – ErikR

+0

Ich habe das oben zu meiner Test/Specs.hs Datei hinzugefügt, wie Sie in Ihrem Beispiel getan haben. Ich habe meine Cabal-Datei wieder in Specs.hs geändert, was meine Hauptdatei ist. Wenn ich einen Stack-Test ausführe, wird mein anderes Testmodul nicht in test/Foo.hs gefunden. –

+0

endlich funktionierte es - ich musste das gleiche Verzeichnis Layout in meinem Test-Verzeichnis als mein src-Verzeichnis haben. –