我在Maven項目B(它是項目A的子項)中的測試代碼類似於從Maven獲取JUnit測試用例中最簡單的文件的方法
String filePath = "src/main/webapp";
//do something with the filePath
當我從child(即B級)運行項目時,上面的測試用例運行正常但是當我運行時來自父項目A(即,在父級別進行mvn安裝),這會失敗,因爲很明顯在父級別下沒有名爲「src/main/webapp」的文件夾(但是在子級別可用)。
我知道我可以做一些編碼檢查測試用例是否從父/子模塊運行,但顯然我想知道其他在遇到這個問題時做了什麼?
不,我不能使用類路徑(出於各種無聊的原因)。
我也試過相對路徑,但後來測試用例開始知道太多了。實際上有解決方案嗎?
UPDATE(12/Feb) - 我在webapp文件夾下有一個web.xml,並使用該web.xml在測試用例中創建一個jetty服務器。理想情況下,src/main/webapp不會放在類路徑中。 WAR插件使用它來打包WAR。現在,我嘗試了另一種方法,我將web.xml放在src/main/resource/console-webapp/WEB-INF/web.xml目錄中,並更改了maven war插件中的webXml屬性。這似乎解決了我的問題。但是,在輸出WAR中我有一個web.xml和另一個冗餘web.xml(由於它在類路徑中而被複制)。
我嘗試過「packageExcludes」和「webResources/excludes」,並獲得了war插件,省略了第二個web.xml,但仍然複製了目錄「console-webapp」(儘管是空的)。有沒有辦法告訴maven war插件完全忽略一個目錄(即什麼是螞蟻模式?)
Maven 2測試是在單獨的進程中的module目錄下運行的。這意味着「src/main/webapp」應該可以很好地工作,無論它從哪裏被調用。你在用surefire插件進行測試嗎? JUnit/TestNG?你有沒有禁用forfire? – artemb 2010-02-11 12:19:11