Haskell 如何使用堆栈在ghci中加载测试

Haskell 如何使用堆栈在ghci中加载测试,haskell,cabal,haskell-stack,Haskell,Cabal,Haskell Stack,我用stack创建了一个非常简单的项目。它包含:一个可执行文件、一个库和相关cabal文件中的测试目标。当我通过堆栈ghci将代码加载到ghci时,我无法访问那里的测试,即使它们位于单独的模块中。有什么方法可以这样使用它吗?试试stack ghci(您的项目名称):(测试套件名称)。然后您应该能够输入main,然后您的测试将运行 例如: 如果.cabal项目文件具有以下值: name: ExampleProject ... test-suite Example-test 然后要运行的命令将是s

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

试试
stack ghci(您的项目名称):(测试套件名称)
。然后您应该能够输入
main
,然后您的测试将运行

例如:

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

name: ExampleProject
...
test-suite Example-test
然后要运行的命令将是
stack ghci ExampleProject:Example test

(由@Chris Stryczynski建议编辑)

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

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

如果执行此操作,
:r
将不会重新加载对库的更改。您知道如何重新编译库和测试吗?@SeanClarkHess有几种设置测试的方法。您可以通过将要测试的库添加到测试套件构建依赖项来设置它,或者您可以只将库源文件夹添加到测试套件hs源目录。我相信
:r
对后者有效,而不是前者,但我不确定。很抱歉花了这么长时间才注意到您的问题。我认为在运行上述命令之前,您需要对受测库进行
堆栈安装
,不是吗?