簡體   English   中英

java.lang.NoSuchFieldError:調試Maven surefire junit測試時出現NO_FORMAT

[英]java.lang.NoSuchFieldError: NO_FORMAT when tunning maven surefire junit tests

嘗試從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調用可以解決問題,但這不是一個很好的解決方案。

知道為什么會出現此問題嗎? 非常感謝。

嘗試升級/降級您的log4j依賴項。

我不確定這是否有幫助,但是我將嘗試檢查是否在類路徑中有多個Log4j依賴項,即我將運行mvn dependency:tree並可能將其輸出到臨時文件,例如mvn dependency:tree > deps.txt然后分析我的依賴關系。

對我來說,問題在於我還激活了一個Arquillian個人資料。 確保只激活正確的一個以運行Maven測試:-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM