2016-01-01 3 views
11

Я пытаюсь использовать стек для загрузки моего тестового набора в ghci, и он загружает зависимость QuickCheck и hspec.Haskell Stack Ghci test-suite

Как это сделать?

Я использую шаблон franklinchen.
https://github.com/commercialhaskell/stack-templates/blob/master/franklinchen.hsfiles

Я попытался
стек GHCi спецификации
стек GHCi тест-люкс
стек GHCi --main-спецификации является

я изменил тест-люкс спецификации для целевой главной является : файл LibSpec.hs

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 

ответ

13
stack ghci --test 

Обратите внимание, что это будет работать только в том случае, если есть один набор тестов и другой исполняемый файл. В противном случае это даст вам предупреждение:

* * * * * * * * 
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 
* * * * * * * *

В этом случае вы должны использовать

stack ghci --test chapterexercises:test:spec 

Без --test стеков собираются игнорировать тесты. Вот почему вы не получаете ошибку двусмысленности в первую очередь.

+0

Также: 'stack ghci -test: spec' является сокращением для' stack ghci -test chapterexercises: test: spec' – dcastro

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