我是否必须在测试配置中重复所有依赖项?

Do I have to repeat all dependencies in the test configuration?

这一次又一次地困扰着我,基本上如果我在 cabal 配置中创建一个 test-suite 我将项目 src 文件夹添加到测试套件 hs-source-dirs 部分并重复所有依赖项在 build-depends。典型的项目可能如下所示:

-- in file "foo.cabal"
library
  build-depends: a, b, c
  exposed-modules: Foo, Bar
  hs-source-dirs: src

test-suite tests
  build-depends: foo, a, b, c
  hs-source-dirs: test

另一种选择是将 src 也包含在测试套件 hs-source-dirs 中。

据我所知,它们都要求我在测试用例中指定所有构建依赖项。有解决办法吗?

它应该按原样工作,但是当您将它与 cabal repl

一起使用时会有一个 reported bug

总体而言,它似乎适用于 cabal test,但如果您尝试将测试文件加载到 cabal repl,您可能会收到如下错误:

Could not find module ‘XYZ’
    It is a member of the hidden package ‘XZY-[ver]’.
    Perhaps you need to add ‘XYZ’ to the build-depends in your .cabal file.
    Use -v to see a list of the files searched for.

所以现在复制依赖项可能是个好主意,但希望这会很快得到解决