在其他语言中,我喜欢将我的单元测试放在与生产代码不同的目录结构中,以保持清晰的分离。在Haskell中有一个典型的约定,如何做到这一点或类似的东西?
答案 0 :(得分:3)
我认为我到目前为止最好的例子是快照项目
http://github.com/snapframework/snap-core
检查测试文件夹,他们开发自己的cabal包仅用于测试,并有一个shell脚本( runTestAndCoverage.sh )来执行最终编译的测试套件。
祝你好运。
答案 1 :(得分:3)
在http://www.haskell.org/haskellwiki/Structure_of_a_Haskell_project编纂了一个典型的惯例。
此外,您可以像https://github.com/ekmett/speculation/blob/master/speculation.cabal
一样将测试版本添加到主要部门单独的cabal方法有一些奖励。也就是说,像数据类型的quickcheck生成器这样的测试方法可以在第二个项目测试样式中使用,如果他们在他们的项目中使用您的数据结构,其他人可以导入,但我更喜欢单一的cabal方法。这取决于你的图书馆的目的。
Haskell testing workflow对于更多测试信息非常有用。
答案 2 :(得分:0)
我在Haskell开发的早期阶段也是如此,但I've used cabal to organize my tests under a tests/
subdirectory