JUnit测试中的警告

时间:2012-12-25 08:45:25

标签: java junit

我想在JUnit测试中显示警告。我不希望测试因为该警告而失败,但我想知道警告发生了。显然,我可以使用System.err.print或类似的东西。现在我想知道正确的方式是什么

3 个答案:

答案 0 :(得分:5)

我也认为这有时很有用,但这不可能。 JUnit坚持正确和错误的答案,因此只有“成功”,“失败”和“错误”。运行测试时代码中出现问题时出错。我会重构并考虑你是否真的需要一个警告(或者像之前的答案所说的那样记录,虽然我认为这个警告会很快丢失),

答案 1 :(得分:4)

将logger与console appender一起使用

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

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

PS。使用slf4j logger的示例。

答案 2 :(得分: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 / main / webapp / WEB-INF / classes /

希望这有帮助。