为什么因假设失败而跳过的junit测试未报告为跳过?

FrV*_*aBe 5 java junit maven-2 junit4 maven

我使用junit假设来决定是否运行测试.junit框架忽略/跳过
假设失败的测试.

我想知道为什么跳过的测试没有被报告为"跳过"?

请看一下这个例子:

import static org.junit.Assert.fail;
import org.junit.Assume;
import org.junit.Test;

public class AssumptionTest {

    @Test
    public void skipAssumptionFailureTest() {
        Assume.assumeTrue("foo".equals("bar"));
        fail("This should not be reached!");
    }
}
Run Code Online (Sandbox Code Playgroud)

在maven项目中运行此测试会导致:

Running AssumptionTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.015 sec
Run Code Online (Sandbox Code Playgroud)

我希望将此测试报告为"跳过".有没有机会实现这个目标?

(junit 4.8.1; maven 2.2.1; java 1.6.0_21)

dog*_*ane 2

您无法开箱即用地执行此操作,因为跳过测试的唯一方法是使用注释@Ignore。但是,我发现一篇博客文章可能正是您正在寻找的内容:

  • 请添加博客文章中的重要部分作为答案,否则一旦该博客文章消失,该答案将毫无用处。(令我印象深刻的是,过去 7 年里没有人提到过这一点) (4认同)