如何解决在没有显式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测试类别?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。