2014-02-25 81 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