0

maven (maven Surefire プラグイン) から junit テストを実行しようとすると、次のエラーが発生します。

java.lang.NoSuchFieldError: NO_FORMAT

このエラーは、log4j ロガーへの呼び出しが原因のようです。したがって、log4j クラス変数を持つクラスがある場合log、次のようになります。

public class SomeClass {

    private Logger log = Logger.getLogger(SomeClass.class);

    ....
}

次にへの呼び出し

log.info(String msg);

上記のエラーが発生します。次のようなjunitテストを実行するときに、基本構成がセットアップされていることを確認しようとしました

@Before
public void setup() {
    BasicConfigurator.configure();
    someclass = new SomeClass();
}

しかし、それはこの問題を解決しません。すべての呼び出しを削除logすると問題は解決しますが、それはあまり良い解決策ではありません。

なぜこの問題が発生するのですか?どうもありがとう。

4

3 に答える 3

0

私にとっての問題は、arquillian プロファイルも有効にしていたことでした。Maven テストを実行するには、正しいものだけを有効にしてください :-)

于 2014-03-25T09:07:42.220 に答える
0

log4j の依存関係をアップグレード/ダウングレードしてみてください。

于 2013-05-24T02:01:15.357 に答える