[英]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.