unit-testing - 如何构建 Haskell 项目?

标签 unit-testing testing tdd haskell

我目前正在尝试使用测试驱动开发方法来做一个 Haskell 项目。在 Java 中,我们可以创建一个结构良好的项目,其中包含 src 和 bin 文件夹,然后是用于使用 JUnit 进行单元测试的 main 和 test 文件夹。我只是想知道在 Haskell 中是否有一种标准的方法来获得这样的结构?一个源文件夹,一个二进制文件夹,源文件夹中有两个文件夹,一个用于测试,一个用于主要源。

最佳答案

我的引用总是Structure of a Haskell projectHow 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/

相关文章:

javascript - E2E测试: Karma+JQuery vs Protractor

unit-testing - 测试Gradle脚本指南

java - 在 Spring Boot 中使用 MockMvc 进行测试

c - cgreen 中的多个 Describe()

unit-testing - TDD 和 BDD 之间的主要区别是什么?

java - 比较几乎所有字段都相同的对象

c# - 代码覆盖率未检测到测试(c# .net 标准)

unit-testing - 对 LINQ2SQL 存储库进行单元测试

java - 有没有一种使用 Hamcrest 匹配字段的简单方法?

c# - 我应该对这个类进行单元测试吗?