12

我正在尝试使用堆栈在 ghci 中加载我的测试套件并让它加载 QuickCheck 和 hspec 依赖项。

我怎样才能做到这一点?

我正在使用 franklinchen 模板。
https://github.com/commercialhaskell/stack-templates/blob/master/franklinchen.hsfiles

我试过
stack ghci spec
stack ghci test-suite
stack ghci --main-is spec

我修改了测试套件规范以针对 main-is: 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
4

1 回答 1

15
stack ghci --test

请注意,这仅在只有一个测试套件且没有其他可执行文件时才有效。否则它会给你一个警告:

* * * * * * * *
要加载的主要模块不明确。候选人是:
打包“项目”组件 exe:project-exe 与 main-is 文件:T:\project\app\Main.hs
打包“项目”组件 test:project-test 与 main-is 文件:T:\project\test\Spec.hs
不会加载任何内容。您可以指定选择哪一个:
 1) 指定堆栈 ghci 的目标,例如堆栈 ghci project:exe:project-exe
 2) 指定主要是什么,例如 stack ghci --main-is project:exe:project-exe
* * * * * * * *

在这种情况下,您必须使用

stack ghci --test chapterexercises:test:spec

没有--test堆栈将忽略测试。这就是为什么你一开始就没有得到歧义错误的原因。

于 2016-01-01T17:45:21.447 回答