【发布时间】:2026-02-19 15:30:01
【问题描述】:
有没有办法用我的构建命令运行我的测试套件?我能找到的只是我可以运行,例如cabal test 在cabal build 之后。我想要的是一种在运行时自动运行测试的方法,例如cabal build.
我想要一个解决方案,它可以为任何构建包的人自动执行此操作,而无需他们运行不同的脚本。一个类比是一个 java 构建脚本,其中默认构建目标在编译后运行单元测试。
【问题讨论】:
-
使用stack,您可能会喜欢
stack test -
@Redu with Cabal 你可能会喜欢
cabal test,就这个问题而言,Stack 和 Cabal 之间没有区别。 -
您能解释一下为什么您想将运行测试的计算成本强加给构建您的程序包的任何人吗?这似乎是一个 XY 问题,您实际上要寻找的是一个好的持续集成框架。
-
@leftaroundabout 如果每次更改代码时都不运行单元测试,那么进行单元测试的意义何在?作为构建的一部分运行它们在 Java 和其他语言中很常见。回复:计算成本:是的,单元测试应该运行得很快;这是一个正交问题。
-
@jsbg 确切地说,您应该在开发期间使用与您指示最终用户使用的目标不同的目标进行构建。也就是说,使用
cabal test,而其他人只会使用cabal build或cabal install。