2016-01-01 5 views
11

Ich versuche Stack zu verwenden, um meine Testsuite in ghci zu laden und die QuickCheck- und hspec-Abhängigkeit zu laden.Haskell Stack Ghci Testsuite

Wie kann ich das tun?

Ich benutze die Franklinchen Vorlage.
https://github.com/commercialhaskell/stack-templates/blob/master/franklinchen.hsfiles

Ich versucht
Stapel GHCI spec
Stapel GHCI Testsuite
Stapel GHCI --main-spec ist

I die Testsuite spec modifiziert, um die Ziel-Haupt ist : LibSpec.hs Datei

test-suite spec 
    default-language: Haskell2010 
    ghc-options:   -Wall 
    type:    exitcode-stdio-1.0 
    hs-source-dirs:  test 
    main-is:    LibSpec.hs 
    build-depends:  base 
        , chapterexercises 
        , hspec 
        , QuickCheck 

Antwort

13
stack ghci --test 

Beachten Sie, dass dies nur funktioniert, wenn es eine einzelne Testsuite und keine andere ausführbare Datei gibt. Sonst wird es eine Warnung geben:

* * * * * * * * 
The main module to load is ambiguous. Candidates are: 
Package `project' component exe:project-exe with main-is file: T:\project\app\Main.hs 
Package `project' component test:project-test with main-is file: T:\project\test\Spec.hs 
None will be loaded. You can specify which one to pick by: 
1) Specifying targets to stack ghci e.g. stack ghci project:exe:project-exe 
2) Specifying what the main is e.g. stack ghci --main-is project:exe:project-exe 
* * * * * * * *

In diesem Fall Sie

stack ghci --test chapterexercises:test:spec 

Ohne --test Stapel wird ignorieren, die Tests verwenden. Deshalb erhalten Sie den Mehrdeutigkeitsfehler überhaupt nicht.

+0

Auch: 'stack ghci --test: spec' ist eine Abkürzung für' stack ghci --test chapterexercises: test: spec' – dcastro