我有一组非常缓慢的测试,需要一周才能运行。(他们实际上会连续运行一些代码约一周)。
自然,没有开发人员(甚至是默认的构建作业)都不想运行这些测试。只有特定的,单独的构建作业才有时间运行它们。因此 ,默认情况下需要禁用这些测试 。
JUnit的类别对此似乎很完美:我用注释了那些缓慢的测试@Category(SlowTests.class)。问题在于它们仍在运行,因为:
@Category(SlowTests.class)
如何在不使用显式TestSuite的情况下默认排除慢速JUnit测试类别?
这个 工作在默认情况下,在Maven中,的IntelliJ和Eclipse :
import static org.junit.Assume.assumeTrue; @Test public void mySlowTest() { assumeTrue("true".equals(System.getProperty("runSlowTests"))); ... }
无论如何要运行它们,只需添加VM参数-DrunSlowTests=true。
-DrunSlowTests=true
从语义上讲,这是完全错误的。但这有效:)