首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到模块“Test.HUnit”

找不到模块“Test.HUnit”
EN

Stack Overflow用户
提问于 2018-01-16 22:55:52
回答 1查看 5.8K关注 0票数 8

我有一个新的堆栈和ghci安装:

代码语言:javascript
复制
$ stack --version

版本1.6.3,Git修订版b27e629b8c4ce369e3b8273f04db193b060000db (5454提交) x86_64 hpack-0.20.0

代码语言:javascript
复制
$ ghci --version

Glasgow Haskell编译系统,版本8.2.1

我做了一个新项目:

代码语言:javascript
复制
$ stack new so-mve

下载模板“新-模板”来创建项目"so-mve“在so-mve/ .废话..。查找用于插入项目的.cabal或package.yaml文件。使用阴谋包:-所以-mve/选择最好的12个快照.*匹配lts-10.3选定的解析器: lts-10.3使用解析器初始化配置: lts-10.3考虑的用户包总数:1将配置写入文件: so-mve/stack.yaml全部完成。

看上去很不错:

代码语言:javascript
复制
$ tree so-mve

所以-mve,ChangeLog.md,├──,LICENSE,├──,README.md,├──,Setup.hs,├──,app,│,LICENSE,└──,├──,mve,├──,├──许可证,├──,stack.yaml,Spec.hs,测试,Spec.hs,Spec.hs

它建立并运行:

代码语言:javascript
复制
$ cd so-mve
$ stack build

所以-mve-0.1.0.0:为so-mve-0.1.0.0构建(lib + exe)预处理库。为so 0.1.0.0建造图书馆。预处理so-mve-0.1.0.0的可执行文件“so-mve-exe”。为so-mve-0.1.0.0构建可执行文件“so-mve-exe”。所以-mve-0.1.0.0:在/...blah-blah.../so-mve/.stack-work/install/x86_64-osx/lts-10.3/8.2.2/lib/x86_64-osx-ghc-8.2.2/so-mve-0.1.0.0-5kG2WnHWwo99IiYYGoxrcC中复制/注册安装库,在/...blah-blah.../so-mve/.stack-work/install/x86_64中安装可执行文件so-mve-exe-osx/lts-10.3/8.2.2/bin注册库so-mve-0.1.0.0.

代码语言:javascript
复制
$ stack exec so-mve-exe

someFunc

测试运行:

代码语言:javascript
复制
$ stack test

.#en0#=‘#en0#2’>编译主( test/Spec.hs,.stack-work/dist/x86_64-osx/Cabal-2.0.1.0/build/so-mve-test/so-mve-test-tmp/Main.o ).进度:1/2测试套件尚未实现so-mve-0.1.0.0:测试套件so-mve-test通过已完成的2个操作。

我三次检查是否安装了HUnit

代码语言:javascript
复制
$ stack install HUnit

填充索引缓存。

我在test/Spec.hs中添加一行

代码语言:javascript
复制
$ cat test/Spec.hs

导入Test.HUnit main ::IO () main = putStrLn“尚未实现的测试套件”

不管用:

代码语言:javascript
复制
$ stack test

所以-mve-0.1.0.0:注销(组件添加: test:so-mve-test) so-mve-0.1.0.0:为so-mve-0.1.0.0构建(lib + exe + test)预处理库。为so 0.1.0.0建造图书馆。预处理so-mve-0.1.0.0的可执行文件“so-mve-exe”。为so-mve-0.1.0.0构建可执行文件“so-mve-exe”。对so-mve-0.1.0.0的预处理测试套件“so-mve- test”为so-mve-0.1.0.0构建测试套件“so-mve- test”。2个主要编译(测试/SPEC.hs,.stack-work/dist/x86_64-osx/Cabal-2.0.1.0/build/so-mve-test/so-mve-test-tmp/Main.o )中的2个

代码语言:javascript
复制
/...blah-blah.../so-mve/test/Spec.hs:1:1: error:
    Could not find module ‘Test.HUnit’
    Use -v to see a list of the files searched for.
  |          
1 | import Test.HUnit
  | ^^^^^^^^^^^^^^^^^

Progress: 1/2
--  While building custom Setup.hs for package so-mve-0.1.0.0 using:
      /Users/XXXXXXXX/.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 build lib:so-mve exe:so-mve-exe test:so-mve-test --ghc-options " -ddump-hi -ddump-to-file -fdiagnostics-color=always"
    Process exited with code: ExitFailure 1

导入其他库(如Text.ReadText.Printf )没有问题。我在谷歌上搜索了一堆,但没有找到答案。有什么好主意吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-16 23:22:59

只需将HUnit添加到测试项目的依赖项中即可。使用stack时,应编辑package.yaml文件以指定依赖项。特别是,您的测试配置应该类似于:

代码语言:javascript
复制
tests:
  so-mve-test:
    main:                Spec.hs
    source-dirs:         test
    ghc-options:
    - ...
    dependencies:
    - HUnit

这在最新的堆栈指南中,在添加依赖项一节中有记录。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48291150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档