我目前正在尝试使用测试驱动开发方法来做一个 Haskell 项目。在 Java 中,我们可以创建一个结构良好的项目,其中包含 src 和 bin 文件夹,然后是用于使用 JUnit 进行单元测试的 main 和 test 文件夹。我只是想知道在 Haskell 中是否有一种标准的方法来获得这样的结构?一个源文件夹,一个二进制文件夹,源文件夹中有两个文件夹,一个用于测试,一个用于主要源。
最佳答案
我的引用总是Structure of a Haskell project和 How to write a Haskell program它阐明了社区或多或少似乎遵循的一些默认设置。到目前为止,它对我来说效果很好,但我的项目还不是很大。
Structure of a Haskell project 中的建议听起来与您在帖子中概述的内容相似,只是进行了一些小的修改,例如测试文件夹与 src 文件夹位于同一目录中。
编辑:
cabal init
将为您生成最小数量,包括具有相关依赖项的 cabal 文件,前提是您至少有任何包含导入的文件。这是一个很好的开始,但只是您正在寻找的部分内容。
理想情况下,随着项目的增长,cabal 文件和目录层次结构将自动保持最新,但我不知道有任何公开的工具可以做到这一点。它在我可能有一天的 list 上,因为我相信它适用于许多其他人。
-odir
和 -hidir
可以与 ghc 一起使用,将 *.o 和 *.hi 文件放在不同的目录中。您可以在 GHC user guide's section on separate compilation 中阅读更多内容)
编辑2:
其他相关/重叠的帖子:
关于unit-testing - 如何构建 Haskell 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14421178/