2013-06-05 63 views
1

我需要覆蓋作爲基於Maven構建的一部分運行的JUnit測試中的一些屬性。爲了做到這一點,我需要找出在我們的測試環境中放置覆蓋文件的位置。如何確定在測試環境中運行時該行正在檢查的類路徑?如何找到Surefire/Junit4測試將搜索的類路徑?

stream = getClass().getClassLoader().getResourceAsStream(resourceName); 

我已經檢查過的ClassLoader的javadoc,但它不是在這一點上非常清楚。

回答

3

要找到classpath中,你可以簡單地使用dependency:build-classpath插件的Maven的:

mvn dependency:build-classpath -DincludeScope=test 

這會給你完整的類路徑,它使用運行萬無一失的時候。實際上,includeScope = test是默認值,所以你可以錯過它。否則,您可以指定任何範圍,例如編譯:

mvn dependency:build-classpath -DincludeScope=compile 
+0

不幸的是,這不會返回完整的類路徑,而只會返回使用的依賴關係。通常,target/classes和target/test-class將成爲surefire用於測試執行的類路徑的一部分。 –