我想用我的java代碼加載'log4j.xml'來運行'mvn test'。我收到文件未找到異常。會很好,得到一些幫助。使用maven測試加載log4j.xml
我的Java代碼:
JUnit測試用例:
import static org.junit.Assert.*;
import org.junit.Test;
public class MyClassTests {
@Test
public void testCheck() {
MyClass myc = new MyClass();
assertEquals(true, myc.check());
}
}
的pom.xml的塊
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.15</version>
<configuration>
<includes>
<include>**/*Tests.java</include>
<include>log4j.xml</include>
</includes>
<argLine>-Xmx512m</argLine>
</configuration>
<inherited>true</inherited>
</plugin>
˚F ILE結構:
- 的pom.xml = */myproject的/ pom.xml的
- 的log4j.xml = */myproject的/ SRC /主/資源/的log4j.xml
- myclass.java = */myproject的/src/main/java/MyClass.java
- JUnit測試= */myproject的/ src目錄/測試/ JAVA/MyClassTests.java
當我運行命令 「MVN測試」,我得到一個文件不發現log4j.xml的例外情況:
java.io.FileNotFoundException: */myproject的/ log4j.xml文件(沒有這樣的文件或目錄 )
基本上代碼正在尋找項目的根文件夾的log4j.xml,而不是/ src/main/resources文件夾。我不想將代碼更改爲「DOMConfigurator.configure(」/ src/main/resources/log4j.xml「);」這將導致部署的應用程序出現問題。需要更優雅的解決方案。
以下代碼解決了該問題。這個問題可以關閉: 'DOMConfigurator.configure(this.getClass()。getClassLoader()。getResource(「log4j.xml」));' – Srik