簡體   English   中英

運行JUnit測試時找不到資源文件

[英]Resource files not found when running JUnit test

我在運行JUnit測試時遇到問題,因為無法找到項目資源而失敗。

我的測試啟動了一個服務器,它使用URLClassLoader加載所有需要的資源。 我在運行項目時沒有找到資源沒有問題。 只有在我嘗試運行JUnit測試時才會出現此問題。

我試過在我的運行時配置中添加文件路徑作為參數進行測試,例如:

-cp .:/path/to/the/config/file 

但它沒有任何區別。

請幫助!

項目結構: 在此輸入圖像描述

默認的Maven測試路徑是src/test/java ,因此如果您的測試不在該目錄中,則必須在pom.xml使用標記<testSourceDirectory><build>定義測試路徑。 你也必須包含maven-surefire-plugin

Maven中的約定是在src/test/java包含所有Java測試代碼。 這是為了防止在最終產品中意外包含測試代碼。 所以我建議你移動測試。

由於您沒有顯示用於加載資源的代碼,因此我無法告訴您是否存在任何錯誤。 但是/path/to/the/config/file很可能是錯誤的; 必須是/path/to/the/config所以你可以在Java中說getClass().getClassLoader().getResource("file")

但我建議使用命令行參數來指定配置文件:

main(String[] args) {
    File configFile = new File(args[0]).getAbsoluteFile();
    if(!configFile.exists()) throw new IllegalArgumentException("Unable to find config file: " + configFile);
    ...
}

這使得錯誤處理變得更加簡單。 此外,它允許在測試和以后的生產中使用不同的配置文件。

暫無
暫無

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

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