2016-09-21 6 views
4

src/test/resources/log4j.propertiesログを記録しないようにlog4jを設定しました。すべてのmavenテストを実行しているときにlog4jを制御できません

単一のテストを実行すると、mvn clean test -Dtest=MyTestClassというこのlog4jプロパティが尊重されます。しかし、すべてのテストを実行すると、つまりmvn clean testというログは無視されます。どうすればいいの?!!

私がおかしくなりそうだと思いますが、すべてのヘルプは高く評価されて

:-)論理的な説明があります願っています。

$ 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フラグメント:52の

<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

ワン0123の下のテストクラスはその@Beforeメソッドの次の行だった:何らかの理由で

import org.apache.log4j.BasicConfigurator; 

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

を、私の知る限りバグでなければならないものを、log4jのにこれらの呼び出しは、あまりにも他のすべてのJUnitのクラスに影響を与えます。これらの行を削除すると、mvn testmvn test -Dtest=MyTestClassの実行と同じロギング動作をとりました。つまり、src/test/resources/log4j.propertiesで定義された内容です。

関連する問題