我有一个 @Parameterized
生成 50 个测试的 junit 测试:
@RunWith(Parameterized.class)
public class NurseRosteringSolveAllTurtleTest ... {
@Parameterized.Parameters(name = "{index}: {0}")
public static Collection<Object[]> getSolutionFilesAsParameters() {
return ... // returns 50 Files.
}
public NurseRosteringSolveAllTurtleTest(File unsolvedDataFile) {
...
}
...
@Test
public void solveDataFile() {
...
}
}
运行它需要一个小时(而且不可能缩短那个时间,它们是集成测试)。测试 28 失败。
如何单独运行测试 28,而不运行其他 49 个测试?在不更改实际代码的情况下,只需在 IntelliJ(或 Eclipse)运行配置中配置 -D
或类似的东西。
最佳答案
我刚刚在 Eclipse 中使用一个简单的参数化测试对此进行了测试,该测试在测试 #4 中总是失败。可以右键单击失败的测试并选择运行。然后只执行该测试。
结果:
令人沮丧的是,我看不到 Eclipse 为解决这个问题做了什么。运行配置中没有任何明显改变。特别是,如果您选择第二次运行配置,它会执行所有测试。
一些进一步的测试表明 Eclipse 将重新生成所有 10 个参数值,但只使用第 4 个值。 (这是通过在 @Parameters
方法中嵌入打印语句来确定的)。
关于java - JUnit 参数化测试 : how do I run only 1 specific test from IntelliJ/Eclipse?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16517300/