我想在JUnit
测试中显示警告。我不希望测试因为该警告而失败,但我想知道警告发生了。显然,我可以使用System.err.print
或类似的东西。现在我想知道正确的方式是什么
答案 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 /
希望这有帮助。