我刚刚开始一个新的Haskell项目,并希望从一开始就建立一个良好的测试工作流程.看起来Haskell有很多优秀而独特的测试工具和许多不同的集成方法.
我调查过:
所有这些似乎都在他们的领域中运作良好,但我正在寻找一种全面的测试方法,并且想知道哪些方法对其他人有效.
什么是Haskell在另一个目录中导入模块的语法?
我正在开始使用Haskell,并希望练习使用HUnit编写简单的函数TDD样式.不过,我无法弄清楚如何构建我的文件.HUnit附带的示例似乎是一个平面目录结构.
我想将我的测试和HUnit代码放在与实际代码不同的文件夹中.我很欣赏一个快速的示例导入语句和一个关于如何构建我的文件的建议.
如果重要的话,我现在正在使用GHCi和NotePad ++进行编码.
所以我试图遵循Haskell项目的建议结构,并且我在组织测试时遇到了一些问题.
为简单起见,让我们从:
src/Clue/Cards.hs # defines Clue.Cards module
testsuite/tests/Clue/Cards.hs # tests Clue.Cards module
Run Code Online (Sandbox Code Playgroud)
首先,我不知道testsuite/tests/Clue/Cards.hs该包含测试代码的模块名称是什么,而另一方面,我不知道如何编译我的测试代码以便我可以链接到我的源代码:
% ghc -c testsuite/tests/Clue/Cards.hs -L src
testsuite/tests/Clue/Cards.hs:5:0:
Failed to load interface for `Clue.Cards':
Use -v to see a list of the files searched for.
Run Code Online (Sandbox Code Playgroud)