【发布时间】:2013-03-30 06:33:40
【问题描述】:
我有一组非常慢的测试,需要一周的时间才能运行。 (他们确实在一周内不间断地运行一些代码)。
自然,没有开发人员(甚至是默认构建作业)想要运行这些测试。只有特定的、单独的构建作业才有时间运行它们。所以需要默认禁用这些测试。
JUnit 的 categories 似乎非常适合:我用 @Category(SlowTests.class) 注释了那些缓慢的测试。问题是它们仍在运行,因为:
- 我不想维护 TestSuite 类,因为我们每天都会添加测试。我有 0 个 TestSuite 类:Maven、IntelliJ 和 Eclipse 只运行我模块中的所有测试类。包括所有那些缓慢的测试。
- 即使我们有 TestSuite 类,大多数开源贡献者仍会尝试从 IntelliJ 或 Eclipse 运行所有测试类,认为它挂起并放弃运行测试。默认情况下需要排除那些缓慢的测试。最好不要在 IntelliJ 或 Eclipse 中进行任何额外配置。
如何在不使用显式 TestSuite 的情况下默认排除慢速 JUnit 测试类别?
【问题讨论】:
-
IntelliJ IDEA 特定的解决方案是将这些测试移动到一个单独的模块中,以便您的主模块不依赖于它,然后将所有测试的类路径设置的测试运行配置共享给您的正常模块测试,除非您为此慢速测试模块类路径创建特定的运行配置,否则慢速测试将永远不会运行。
标签: eclipse junit intellij-idea jenkins maven-3