2014-02-25 45 views
2

我使用神火JUnit测试不记录失败的测试XML文件假设

<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构建这个项目,我得到了万无一失的XML文件下面的代码片段

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

我不认为这是surefire的正确行为,因为假设失败的处理方式与忽略相同,所以它应该遵循与忽略的相同日志记录标准。 This JIRA明确表示应该记录原因。

您认为如何?有没有解决方法将该消息放入xml文件?

感谢

更新1

我不能使用@Ignore是因为我不想硬编码测试作为忽视的原因。我希望基于某些在编码时无法确定的先决条件跳过它。

+0

提到你没有'@org.junit 。忽略'在你的测试课的顶部? –

+0

@ jw23,请参阅我的更新 – stackoverflower

回答

0

Assume方法JUnit Theories大多使用时的DataPoint小号组合是无效的对于给定的Theory。您应该使用Assert类,而不是Assume。这里就是你们的榜样测试,重新编写,使用正确的类:

@Test 
public void test() throws IOException { 
    Assert.assertTrue("I am broken", false); 
    // some tests 
} 

它是为错误的假设被忽略,因为在Javadoc for Assume