【问题标题】:How to load tests in ghci with stack如何使用堆栈在 ghci 中加载测试
【发布时间】:2017-02-17 16:25:23
【问题描述】:

我用堆栈创建了一个非常简单的项目。它包含:可执行文件、库和相关 cabal 文件中的测试目标。当我通过堆栈 ghci 将代码加载到 ghci 时,即使它们位于单独的模块中,我也无法访问那里的测试。有没有办法以这种方式使用它?

【问题讨论】:

  • 根据this answer可以使用stack ghci --test。我发现它没有问题。

标签: haskell cabal haskell-stack


【解决方案1】:

试试stack ghci (your project name):(the test suite name)。然后您应该可以输入main 并且您的测试将运行。

例子:

如果您的 .cabal 项目文件具有以下值:

name: ExampleProject
...
test-suite Example-test

那么要运行的命令是stack ghci ExampleProject:Example-test

(@Chris Stryczynski 建议编辑)

要查看testsrc 目录以便在您使用:r 重新加载时更新它们,请运行:

stack ghci --ghci-options -isrc --ghci-options -itest ExampleProduct:Example-test

【讨论】:

  • 如果你这样做,:r 不会重新加载对你的库的更改。你知道如何做到这一点,以便:r 重新编译 lib 并进行测试吗?
  • @SeanClarkHess 有几种设置测试的方法。您可以通过将要测试的库添加到 test-suite build-depends 来设置它,或者您可以将库源文件夹添加到 test-suite hs-source-dirs。我相信 :r 与后者而不是前者一起工作,但我不确定。很抱歉花了这么长时间才注意到您的问题。
  • 我认为您需要在运行上述命令之前对被测库进行stack install,不是吗?
猜你喜欢
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
  • 2018-07-31
  • 2014-12-18
  • 1970-01-01
  • 2013-06-27
  • 1970-01-01
  • 2022-10-23
相关资源
最近更新 更多