When running tests using maven
, i'd like to see output on my screen.
After putting the log4j.xml
into my project's dir (src/test/resources/cfg/), i updated my pom
to include
235 <plugin>
236 <groupId>org.apache.maven.plugins</groupId>
237 <artifactId>maven-surefire-plugin</artifactId>
238 <configuration>
239 <skipTests>false</skipTests>
240 <excludes>
241 <exclude>**/*$*.java</exclude>
242 </excludes>
243 <systemProperties>
244 <property>
245 <name>-Dlog4j.configuration</name>
246 <value>file:src/test/resources/cfg/log4j.xml</value>
247 </property>
248 </systemProperties>
249 <additionalClasspathElements>
250 <additionalClasspathElement>src/test/resources/cfg/</additionalClasspathElement>
251 </additionalClasspathElements>
252 </configuration>
253 </plugin>
The above does not work. When tests run, i still see the following message
log4j:WARN Please initialize the log4j system properly.
For the record, the following is the log4j
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
3
4 <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
5 <appender name="console" class="org.apache.log4j.ConsoleAppender">
6 <param name="Target" value="System.out"/>
7 <layout class="org.apache.log4j.PatternLayout">
8 <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/>
9 </layout>
10 </appender>
11
12 <root>
13 <priority value ="debug" />
14 <appender-ref ref="console" />
15 </root>
16
17 </log4j:configuration>
What am i missing please?
I have a couple of comments. First, I recommend that you put any test-related log4j, logback config files directly in src/test/resources. That way they are always added to the classpath and it just works.
However, if you need to put the files in src/test/resources/cfg and want to use the classpathelements, then heed the advice of the documentation
But, if you must, you can use the additionalClasspathElements element to add custom resources/jars to your classpath. This will be treated as an absolute file system path, so you may want use ${basedir} or another property combined with a relative path.
So try:
<additionalClasspathElement>${basedir}/src/test/resources/cfg/</additionalClasspathElement>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With