我正在努力构建我的简单项目,以便我将来很容易开发。基本上我用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的位置?另外,有没有更好的方法来设置项目?
答案 0 :(得分:3)
您似乎只需将src/main
添加到hs-source-dirs
以进行测试。
此外,您可以使用Methods
模块创建库,并使可执行文件和测试套件都依赖于库。
有许多关于黑客的例子,例如doctest测试套装“spec”使用hs-source-dirs
,测试套装“doctests”使用库。第一种方法允许测试未由库导出的区间函数。