Unit testing &引用;“本地找不到模块”;使用Haskell堆栈运行detailed-0.9测试套件时

Unit testing &引用;“本地找不到模块”;使用Haskell堆栈运行detailed-0.9测试套件时,unit-testing,haskell,testing,cabal,haskell-stack,Unit Testing,Haskell,Testing,Cabal,Haskell Stack,我有一个Haskell项目,其中有一个使用detailed-0.9的测试套件。我可以使用cabal正确运行测试,但是使用stack我会出错。exitcode-stdio-1.0测试套件似乎工作正常 MWE 下面是一个最低限度的工作示例,包含两种测试套件类型。完整的存储库可用 详细的堆栈测试。阴谋集团 name:堆栈测试详细信息 版本:0.1.0.0 构建类型:简单 阴谋集团版本:>=1.20 测试套件exitcode 类型:exitcode-stdio-1.0 主要代码是:Exitcode.hs

我有一个Haskell项目,其中有一个使用
detailed-0.9
的测试套件。我可以使用
cabal
正确运行测试,但是使用
stack
我会出错。
exitcode-stdio-1.0
测试套件似乎工作正常

MWE 下面是一个最低限度的工作示例,包含两种测试套件类型。完整的存储库可用

详细的堆栈测试。阴谋集团

name:堆栈测试详细信息
版本:0.1.0.0
构建类型:简单
阴谋集团版本:>=1.20
测试套件exitcode
类型:exitcode-stdio-1.0
主要代码是:Exitcode.hs
其他模块:MyModule
构建取决于:基本>=4.10
hs源目录:src测试套件
默认语言:Haskell 2010
详细的测试套件
类型:详细-0.9
测试模块:详细说明
其他模块:MyModule
建造取决于:基地>=4.10,阴谋集团>=1.20
hs源目录:src测试套件
默认语言:Haskell 2010
src/MyModule.hs

modulemymodule其中
myFunction::Int
myFunction=1
testsuite/Exitcode.hs

导入MyModule(myFunction)
导入系统。退出(ExitAccess,exitFailure)
main::IO()
主要=
如果myFunction==1
那么exitSuccess
其他退出失败
testsuite/Detailed.hs

模块详细信息,其中
导入MyModule(myFunction)
导入Distribution.TestSuite
测试::IO[测试]
测试=返回
[测试$TestInstance
{run=return$Finished$如果myFunction==1,则Pass else失败“not equal 1”
,name=“我的测试”
,Distribution.TestSuite.tags=[]
,选项=[]
,setOption=\opt val->Left“不支持选项”
}
]
stack.yaml

resolver:lts-11.22

输出 阴谋集团 一切正常:

$cabal测试退出代码
stack-test-detailed-0.1.0.0的预处理测试套件“exitcode”。。
为stack-test-detailed-0.1.0.0构建测试套件“exitcode”。。
正在运行1个测试套件。。。
测试套件exitcode:正在运行。。。
测试套件exitcode:通过
测试套件记录到:dist/Test/stack-Test-detailed-0.1.0.0-exitcode.log
1个测试套件中的1个(1个测试用例中的1个)通过。
$cabal测试详细信息
stack-test-detailed-0.1.0.0的预处理测试套件“详细”。。
stack-test-detailed-0.1.0.0的建筑测试套件“详细说明”。。
[1/1]编译Main(dist/build/detailedStub/detailedStub tmp/detailedStub.hs,dist/build/detailedStub/detailedStub tmp/Main.o)
正在链接dist/build/detailedStub/detailedStub。。。
正在运行1个测试套件。。。
测试套件详细说明:正在运行。。。
测试套件详细说明:通过
测试套件记录到:dist/Test/stack-Test-detailed-0.1.0.0-detailed.log
1个测试套件中的1个(1个测试用例中的1个)通过。
堆栈 Exitcode测试工作:

$stack test:exitcode
stack-test-detailed-0.1.0.0:构建(测试)
stack-test-detailed-0.1.0.0的预处理测试套件“exitcode”。。
为stack-test-detailed-0.1.0.0构建测试套件“exitcode”。。
stack-test-detailed-0.1.0.0:测试(套件:exitcode)
stack-test-detailed-0.1.0.0:通过测试套件exitcode
已完成2项行动。
详细测试未能编译:

$堆栈测试:详细信息
stack-test-detailed-0.1.0.0:构建(测试)
stack-test-detailed-0.1.0.0的预处理测试套件“详细”。。
stack-test-detailed-0.1.0.0的建筑测试套件“详细说明”。。
:错误:
在本地找不到模块“MyModule”
进展1/2
--为包stack-test-detailed-0.1.0.0构建自定义Setup.hs时,使用:
/Users/john/.stack/setup exe cache/x86_64-osx/Cabal-simple_mPHDZzAJ_2.0.1.0_ghc-8.2.2--builddir=.stack work/dist/x86_64-osx/Cabal-2.0.1.0构建测试:详细--ghc选项“-ddump hi-ddump to file-fdiagnostics color=always”
进程已退出,代码为:ExitFailure 1

环顾四周,我发现
detailed-0.9
有点不酷,人们似乎马上就放弃了。但它确实适用于
阴谋集团
,因此我不明白为什么
堆栈
会失败。

更新 看起来这实际上是一个堆栈错误,已经有报告了 固定的 (尽管最新版本中尚未提供该修复程序)。

更新 看起来这实际上是一个堆栈错误,已经有报告了 固定的
(尽管最新版本中尚未提供此修复程序)。

听起来您应该将此作为一个提交。您可以将“更新”作为一个答案来移动,以使此线程标记为已解决。您可以将此作为一个答案来移动“更新”,以使此线程标记为已解决