我正在尝试使用加载“log4j.xml”的 java 代码运行“mvn test”。我收到文件未找到异常。能得到一些帮助会很棒。
我的java代码:
public class MyClass {
static Logger logger = Logger.getLogger(MyClass.class);
public boolean check(){
try{
DOMConfigurator.configure("log4j.xml");
logger.info("into the method");
}
return true;
}
}
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>
文件结构:
- pom.xml = */myproject/pom.xml
- log4j.xml = */myproject/src/main/resources/log4j.xml
- myclass.java = */myproject/src/main/java/MyClass.java
- junit test = */myproject/src/test/java/MyClassTests.java
当我运行命令“mvn test”时,我得到 log4j.xml 的文件未找到异常:
java.io.FileNotFoundException: */myproject/log4j.xml (没有这样的文件或目录)
基本上,代码在项目的根文件夹中而不是在 /src/main/resources 文件夹中查找 log4j.xml。我不想将代码更改为 "DOMConfigurator.configure("/src/main/resources/log4j.xml");" 这将导致部署的应用程序出现问题。需要更优雅的解决方案。