【发布时间】:2017-09-22 01:46:30
【问题描述】:
我正在开发我的第一个主要 Haskell 应用程序,并希望添加 mockery 以创建一次性测试 WAI 线程。导入 mockery 并运行 stack test 导致编译器错误:
Failed to load interface for ‘Test.Mockery.Directory’
It is a member of the hidden package ‘mockery-0.3.5’.
Perhaps you need to add ‘mockery’ to the build-depends in your .cabal file.
Use -v to see a list of the files searched for.
所以,我在测试依赖项下的 cabal 文件中添加了嘲弄。但是,当我运行 stack build 或 stack test 时,会自动从 cabal 文件中删除嘲笑。
我还尝试在stack.yaml 文件中的extra-deps 下列出mockery-0.3.5。不出所料,这不起作用,因为嘲弄是我的 lts 的一部分,而额外的 deps 用于 lts 之外的包。
我怎样才能让堆栈识别出应该将嘲笑作为项目的依赖项包含在内?
这是我的 stack.yaml:
flags: {}
ghc-options:
! '*': -Wall
packages:
- .
extra-deps: [
]
resolver: lts-9.5
我正在使用堆栈版本 1.5.1
我认为这是一个愚蠢的构建问题,并期待面对我明显的疏忽。
【问题讨论】:
-
实际上,不,这可能不是重复的,请仔细阅读您的问题。听起来您正在使用hpack,它会为您生成
.cabal文件。改为在package.yaml文件中添加依赖项。 -
packages.yaml 正是这个地方。谢谢!
标签: haskell haskell-stack