2012-12-25 158 views
7

我想在JUnit測試中顯示警告。我不希望測試因該警告而失敗,但我想知道發生了警告。顯然,我可以使用System.err.print或類似的東西。現在我不知道什麼是正確的方式與控制檯的appender做JUnit測試中的警告

+0

這取決於您想要顯示的警告的位置?安慰?測試輸出報告一般? – fge

回答

5

我也曾認爲這有時會有用,但這是不能做到的。 JUnit堅持正確和錯誤的答案,因此只有「成功」,「失敗」和「錯誤」。運行測試時代碼在代碼中出現故障時出錯。我會重構並考慮是否真的需要警告(或者像之前回答建議的日誌,儘管我認爲此警告很快會丟失),

+0

可能使用TestSuite.warning(String),儘管該欄仍然是紅色的。 –

4

使用記錄它

final Logger logger = LoggerFactory.getLogger(LoggingTest.class); 

@Test 
public void test() { 
    logger.warn("message"); 
} 

PS。使用slf4j記錄器的示例。

2

您可以針對您的測試使用log4j配置。

第1步:創建一個文件src/test/resources/test-log4j.properties,其中包含測試的log4j配置。

實施例:

log4j.rootLogger=DEBUG, R 
log4j.appender.R=org.apache.log4j.ConsoleAppender 
log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{3}:%L - %m%n 

步驟2:編輯你的pom.xml類似如下:

<build> 
... 
<plugins> 

    <plugin> 
    <artifactid>maven-surefire-plugin</artifactid> 
    <version>2.3</version> 
    <configuration> 
     <systemproperties> 
     <property> 
      <!-- Specific log4j config for tests --> 
      <name>log4j.configuration</name> 
      <value>test-log4j.properties</value> 
     </property> 
     </systemproperties> 
    </configuration> 
    </plugin> 
    ... 
</plugins> 
</build> 

現在你的log4j.properties位於SRC /主/ web應用/ WEB-INF /類/

希望這會有所幫助。