簡體   English   中英

我應該將屬性文件放在哪里進行測試?

[英]Where should I put my properties file for tests?

我在此文件夾中當前有一個屬性文件:

/src/webapp/WEB-INF/classes/my.properties

我正在使用以下方式加載它:

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream is = classLoader.getResourceAsStream("/my.properties");

Properties props = new Properties();

try {
    props.load(is);
} catch (IOException e) {
    e.printStackTrace(); 
}

String test = props.getProperty("test");

現在,這在我的Spring mvc應用程序中可以正常工作。

但是,當我為此創建一個測試時,它失敗了,我認為是因為應用程序加載它的方式未使用web-inf / classs,因為它只是一個類,而不是spring Web應用程序。

那么我應該將屬性文件放在哪里,以便在運行junit測試時可以拾取屬性文件?

另外,對於我的Web應用程序,默認的類路徑中除/ web-inf / classes以外還有哪些其他文件夾?

如果你把my.properties/src/test/resources ,這將作為一個正常的資源,你的測試。

我將在classLoader.getResourceAsStream("/my.properties");刪除路徑(/ classLoader.getResourceAsStream("/my.properties"); 因為類加載器從應用程序的根目錄啟動。 將文件保留在相同的位置。 然后更改為

String filename = "my.properties"; 
InputStream is = classLoader.getResourceAsStream(filename);  //for web-app
if(is == null)
    is = new FileInputStream (filename);        //for testing

通常我將屬性文件直接放在src文件夾中。

暫無
暫無

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

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