Surefire JUnit测试未记录失败在测试xml文件中假设

时间:2014-02-25 19:52:38

标签: java maven junit surefire

我正在使用

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.16</version>
</plugin>

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
</dependency>

测试我的项目。

我有一个非常简单的测试方法

@Test
public void test() throws IOException {
    Assume.assumeTrue("I am broken, so I am ignored", false);
    // some tests
}

当我使用maven构建项目时,我在surefire xml文件中获得以下代码片段

<testcase name="test" classname="com.stackoverflower.experiment.Test" time="0">
    <skipped/>
</testcase>

我不认为这是surefire的正确行为,因为假设失败被视为被忽略,它应该遵循与被忽略的相同的日志标准。 This JIRA明确说明应该记录原因。

你怎么看?是否有解决方法将该消息放入xml文件中?

由于

更新1

我无法使用@Ignore的原因是因为我不想将测试硬编码为忽略。我希望根据编码时无法确定的一些前提条件跳过它。

1 个答案:

答案 0 :(得分:0)

Assume的组合对于给定的DataPoint无效时,Theory主要用于Assume种方法。您应该使用JUnit Theories课程,而不是@Test public void test() throws IOException { Assert.assertTrue("I am broken", false); // some tests } 。这是您的示例测试,重写以使用正确的类:

{{1}}

Assert

中所述,这意味着要忽略错误的假设