java - JUnit 参数化测试 : how do I run only 1 specific test from IntelliJ/Eclipse?

标签 java eclipse junit intellij-idea

我有一个 @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 中总是失败。可以右键单击失败的测试并选择运行。然后只执行该测试。

test output

结果:

just test 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/

相关文章:

java - 如何找到小于另一个元素的元素?

java - Mockito:模拟并注入(inject)模拟类

Java - 如何测试 RestTemplate POST 方法成功状态代码?

java - 如何从 Hibernate 获取自定义类型的数据库方言?

java - 如何扩展Struts2 URLTag实现url安全

java - IntelliJ IDEA 14 无法使用 Tomcat 运行 Spring 项目,但使用 Eclipse 可以顺利运行

java - JetS3t - 连接无异常,但当我尝试执行其他操作时为 "Invalid Class Name"

Java - 安全性已开启,但我仍然可以发送我想要的任何请求

java - 什么架构?在集群中分布内容构建

javascript - 计算 ng-repeat 使用 Selenium webdriver 生成的选项卡集中的选项卡数量