2016-09-21 68 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中定義的內容。