gpt4 book ai didi

unit-testing - 当测试文件和被测文件位于不同文件夹时如何设置.cabal测试套件

转载 作者:行者123 更新时间:2023-12-04 04:16:05 25 4
gpt4 key购买 nike

我正在尝试以一种便于我将来开发的方式来构建我的简单项目。基本上我用过cabal init为了获得基本的东西,然后我创建了一个 src 文件夹,在里面我创建了一个主文件夹和一个测试文件夹,主要用于保存所有源代码,测试是放置所有测试源代码。在 .cabal 我有以下内容:

.
.
.
.
test-suit Test
type: exitcode-stdio-1.0
hs-source-dirs: src/test
main-is: Test.hs
build-depends: base

executable Finance
hs-source-dirs: src/main
main-is: Main.hs
build-depends: base

只有三个文件 Main.hs、Methods.hs、Test.hs。 Methods.hs 导入 Main.hs 以执行,Test.hs 导入 Methods.hs 并测试方法。我的目标是能够做到 cabal --enable-tests configure然后 cabal build然后 cabal test然后 cabal install .但是在构建阶段我收到了错误
src/test/Test.hs:2:8:
Could not find module `Methods`
Use -v to see a list of the files search for.

我如何让 cabal 知道 Methods.hs 在哪里?另外,有没有更好的方法来设置项目?

最佳答案

看起来你只需要添加 src/mainhs-source-dirs为测试服。

您也可以使用 Methods 创建一个库。模块并使可执行文件和测试套件都依赖于库。

有很多关于hackage的例子,例如doctest它的测试服“规范”使用 hs-source-dirs并且测试服“doctests”使用一个库。第一种方法允许测试不是由库导出的区间函数。

关于unit-testing - 当测试文件和被测文件位于不同文件夹时如何设置.cabal测试套件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14545644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com