我在Maven和Eclipse中的測試有問題。Maven - 覆蓋測試資源文件夾
我從Eclipse中運行我的測試套件和一切運作良好,但是當我運行
mvn test
我有一個例外,它出現時,我試圖在測試類似案例,閱讀一些文件:
final File javaFolder = new File("WEB-INF/test/file");
當我這樣做,我有一個空指針異常和調試我看到的路徑是
C:\Users\myUser\AppData\Local\Temp\WEB-INF\test\file
另外,我認爲這很重要,因爲我們需要在特定的地方使用測試源,所以我重寫了我的pom中的測試目錄。我們這樣做:
<testSourceDirectory>WEB-INF/test/java</testSourceDirectory>
所以我的問題是:爲什麼使用Maven運行測試沒有得到正確的工作目錄?我可以定義一個特定的文件夾來讀取一些文件嗎?我試過的東西像
getClass().getResource("myFile").getFile()
但是當我打印的絕對路徑,我再次
有C:\Users\myUser\AppData\Local...\myFile
編輯:我沒有機會按照約定,因爲我說的是一個大的系統,從未使用Maven,因此無法更改所有的目錄結構。不幸的是,這不是我的想法。
此外,當打印我的「user.dir來」我有:C:\Users\myUser\AppData\Local\Temp
EDIT2:我的項目路徑是另一個分區E:\work\myProject
感謝您的回覆。這個:'C:\ Users \ Marcos \ AppData \ Local \ Temp \ classpath:\ WEB-INF \ test \ file'所以我再次出現了NPE,原因很明顯:( – MarcosTonina
加入testResource目錄很可能解決了這個問題*假設*他正在使用後面提到的'getResource()'方法,順便說一句,組合是保持測試靈活性的最佳方法。當你從一個構建測試轉換到一個測試運行時,其他解決方案最終會打破(這是我最好的猜測,爲什麼他們需要在WEB-INF中) – Gus
將我的測試從WEB-INF移動到另一個文件夾可能是一個選項您是否建議? – MarcosTonina