ski*_*ppy 83 java logging junit log4j
看看我写的最后一个JUnit测试用例,我在类构造函数中调用了log4j的BasicConfigurator.configure()方法.这对于从Eclipse的"作为JUnit测试用例运行"命令运行该单个类来说效果很好.但我意识到这是不正确的:我很确定我们的主要测试套件从一个进程运行所有这些类,因此log4j配置应该在某个地方更高的位置发生.
但我仍然需要自己运行一个测试用例,在这种情况下我想配置log4j.我应该在哪里放置配置调用,以便在测试用例独立运行时运行它,而不是在测试用例作为更大套件的一部分运行时运行?
ara*_*nid 58
我通常只是将一个log4j.xml文件放入src/test/resources中,让log4j自己找到它:不需要代码,默认的log4j初始化将把它拿起来.(我通常想把自己的记录器设置为'DEBUG')
您可能希望研究Simple Logging Facade for Java(SLF4J).它是一个包围Log4j的外观,它不需要像Log4j这样的初始设置调用.由于API差异很小,因此为Slf4j切换Log4j也相当容易.
我在log4j.xml中使用系统属性:
...
<param name="File" value="${catalina.home}/logs/root.log"/>
...
Run Code Online (Sandbox Code Playgroud)
并开始测试:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<configuration>
<systemProperties>
<property>
<name>catalina.home</name>
<value>${project.build.directory}</value>
</property>
</systemProperties>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
96628 次 |
| 最近记录: |