I'm trying to use stack to load my test-suite in ghci and have it load the QuickCheck and hspec dependency.
How can I do this?
I'm using the franklinchen template.
https://github.com/commercialhaskell/stack-templates/blob/master/franklinchen.hsfiles
I have tried
stack ghci spec
stack ghci test-suite
stack ghci --main-is spec
I modified the test-suite spec to target the main-is: LibSpec.hs file
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
stack ghci --test
Note that this will only work if there's a single test suite and no other executable. Otherwise it will give you a warning:
* * * * * * * * 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 this case you have to use
stack ghci --test chapterexercises:test:spec
Without --test
stack is going to ignore the tests. That's why you don't get the ambiguity error in the first place.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With