【发布时间】:2014-03-19 10:55:09
【问题描述】:
我有一堆 Java 单元测试,我想将一个持续测试框架集成到我的代码库中。理想情况下,我想编写一个 Maven / Ant 目标或 bash 脚本,只要它正在监视的文件发生变化,它就会开始运行测试。到目前为止,我已经查看了几个选项(Infinitest、JUnit Max),但它们似乎都想作为 IDE 插件运行。
我使用仅限 CLI 的工具的动机是我的同事使用广泛的文本编辑器和 IDE,但我想确保任何人都可以持续运行测试。
编辑:我没有考虑 Jenkins 或其他更典型的 CI 解决方案有几个原因:
- 我们已经有了一个 CI 构建工具,用于在每次推送后运行单元和集成测试。
- 它们隐藏了测试的运行时间(因为它们是异步运行的),让测试变得越来越慢,而人们并没有真正注意到。
- 它们通常仅在您的存储库位于某个中心位置时才运行测试。我希望在编辑时运行单元测试,而不是在我已经将代码推送到某个地方之后。我越早运行测试,我就能越早修复我在编辑时犯的任何错误。我们的 JavaScript 团队很喜欢一个类似的工具,引用了 3 倍的迭代单元测试开发速度。
【问题讨论】:
-
您打算如何查看测试结果?您不需要仪表板来发现测试失败吗?建议的 CI 解决方案似乎可以满足您的要求,因为它可以监控您的(本地)SCM 并呈现当前的测试结果。你必须在你自己的机器上运行一个私有实例(Jenkins 很适合,它非常轻量级,只有一个 WAR 文件)。当与提供更改挂钩的 SCM 结合使用时,您应该会得到所需的内容。
-
我会让一个进程在后台运行,它会在测试失败时打印出来。
标签: java junit continuous-integration continuous-testing infinitest