我有一个@Parameterizedjunit测试,它产生了50个测试:
@Parameterized
@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个测试?只需更改-DIntelliJ(或Eclipse)运行配置中的或类似内容,而无需更改实际代码。
-D
Eclipse现在(从Mars M4版本开始)不仅可以运行Parameterized测试类中的单个测试,还可以运行任何类型的子树。
可以是:
而且,正如已经提到的,还可以通过在启动配置文件中的“方法”文本中输入测试名称来指定测试。将存在一个标记,指示该方法不存在,但无论如何该测试都将运行。
有关详细信息,请参见此博客文章。