我有一组非常慢的测试,需要一周的时间才能运行。(他们实际上是在大约一周内不间断地运行一些代码)。
自然,没有开发人员(甚至是默认的构建作业)想要运行这些测试。只有特定的、单独的构建作业才有时间运行它们。所以这些测试需要默认禁用。
JUnit 的类别似乎非常适合这一点:我用@Category(SlowTests.class)
. 问题是它们仍在运行,因为:
- 我不想维护 TestSuite 类,因为我们每天都添加测试。我有 0 个 TestSuite 类:Maven、IntelliJ 和 Eclipse 只运行我模块中的所有测试类。包括所有那些缓慢的测试。
- 即使我们有 TestSuite 类,大多数开源贡献者仍然会尝试从 IntelliJ 或 Eclipse 运行所有测试类,认为它挂起并放弃运行测试。默认情况下需要排除那些缓慢的测试。最好不要在 IntelliJ 或 Eclipse 中进行任何额外配置。
默认情况下,如何在不使用显式 TestSuite 的情况下排除一类慢速 JUnit 测试?