2016-09-21 69 views
4

src/test/resources/log4j.properties我已经配置log4j不记录任何东西。运行所有maven测试时无法控制log4j

当我运行一个测试,即mvn clean test -Dtest=MyTestClass,这个log4j属性被注意。但是,当我运行所有测试(即mvn clean test)时,此记录conf将被忽略。怎么会这样?!!

我想我会疯了,但希望有:-)

任何帮助,高度赞赏一个合乎逻辑的解释。

$ mvn -version 
Apache Maven 3.3.9 
Maven home: /usr/share/maven 
Java version: 1.8.0_60, vendor: Oracle Corporation 
Java home: /usr/lib/jvm/jdk-8-oracle-x64/jre 
Default locale: en_GB, platform encoding: UTF-8 
OS name: "linux", version: "4.6.0-1-amd64", arch: "amd64", family: "unix" 

的肯定火的版本是2.19.1:

[INFO] --- maven-surefire-plugin:2.19.1:test (default-test) @ common-util --- 

src/test/resources/log4j.properties:相关资源

log4j.rootLogger=OFF 

POM片段:

<plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-resources-plugin</artifactId> 
     <version>2.5</version> 
     <configuration> 
     <encoding>ISO-8859-1</encoding> 
     </configuration> 
    </plugin> 
+0

您能否显示配置'resources'的'pom.xml'的部分,请 –

+0

我添加了'maven-resources-plugin'的配置文件,那是您的意思吗?在'process-resources'阶段没有运行有趣的构建插件(只有一个生成JRebel XML文件)。 – skybert

+0

有什么样' $ {} test.resource.directory ... ' –

回答

1

其中52在0123下测试课程曾在其@Before方法如下几行:

import org.apache.log4j.BasicConfigurator; 

    @Before 
    public void setUp() { 
    BasicConfigurator.resetConfiguration(); 
    BasicConfigurator.configure(); 
    } 

出于某种原因,什么必须是一个错误,据我所知,这些调用log4j的影响所有其他JUnit类了。删除这些生产线mvn test获得了与运行mvn test -Dtest=MyTestClass相同的记录行为,即在src/test/resources/log4j.properties中定义的内容。