2016-01-01 33 views
11

Sto cercando di utilizzare lo stack per caricare la mia suite di test in ghci e far caricare la QuickCheck e la dipendenza da hspec.Test-suite Haskell Stack Ghci

Come posso fare questo?

Sto usando il modello di franklinchen.
https://github.com/commercialhaskell/stack-templates/blob/master/franklinchen.hsfiles

Ho provato
pila ghci spec
pila ghci prova interno
pila ghci --main-spec è

ho modificato le specifiche di prova interno di indirizzare il principale è : il file 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 

risposta

13
stack ghci --test 

Si noti che ciò funzionerà solo se esiste una singola suite di test e nessun altro eseguibile. In caso contrario vi darà un avvertimento:

* * * * * * * * 
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 questo caso è necessario utilizzare

stack ghci --test chapterexercises:test:spec 

Senza --test pila sta per ignorare le prove. Ecco perché non si ottiene l'errore di ambiguità in primo luogo.

+0

Inoltre: 'stack ghci --test: spec' è una scorciatoia per' stack ghci --test chapterexercises: test: spec' – dcastro