在没有显式TestSuite的情况下,不要在Maven和每个IDEEclipse,IntelliJ等中默认运行缓慢的JUnit测试类别

问题描述

这个 :

import static org.junit.Assume.assumeTrue;

@Test
public void mySlowTest() {
    assumeTrue("true".equals(System.getProperty("runSlowTests")));
    ...
}

无论如何要运行它们,只需添加VM参数-DrunSlowTests=true

从语义上讲,这是完全错误的。但这有效:)

解决方法

我有一组非常缓慢的测试,需要一周才能运行。(他们实际上会连续运行一些代码约一周)。

自然,没有开发人员(甚至是默认的构建作业)都不想运行这些测试。只有特定的,单独的构建作业才有时间运行它们。因此 ,默认情况下需要禁用这些测试

JUnit的类别对此似乎很完美:我用注释了那些缓慢的测试@Category(SlowTests.class)。问题在于它们仍在运行,因为:

  • 我不想维护TestSuite类,因为我们每天都添加Tests。我有0个TestSuite类:Maven,IntelliJ和Eclipse仅运行模块中的所有Test类。包括所有那些缓慢的测试。
  • 即使我们拥有TestSuite类,大多数开源贡献者仍会尝试从IntelliJ或Eclipse运行所有Test类,认为它们挂起并放弃正在运行的测试。默认情况下,这些慢速测试需要排除。最好在IntelliJ或Eclipse中无需任何额外配置。

如何在不使用显式TestSuite的情况下默认排除慢速JUnit测试类别?

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...