如何在Haskell中分离生产和测试代码

时间:2011-02-09 19:04:17

标签: unit-testing haskell

在其他语言中,我喜欢将我的单元测试放在与生产代码不同的目录结构中,以保持清晰的分离。在Haskell中有一个典型的约定,如何做到这一点或类似的东西?

3 个答案:

答案 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