我正在使用
<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的原因是因为我不想将测试硬编码为忽略。我希望根据编码时无法确定的一些前提条件跳过它。
答案 0 :(得分:0)
当Assume
的组合对于给定的DataPoint
无效时,Theory
主要用于Assume
种方法。您应该使用JUnit Theories课程,而不是@Test
public void test() throws IOException {
Assert.assertTrue("I am broken", false);
// some tests
}
。这是您的示例测试,重写以使用正确的类:
{{1}}中所述,这意味着要忽略错误的假设