2010-05-18 405 views
4

我們在通常由maven surefire插件執行的JUnit測試中使用過濾的testResources。也就是說,pom包含一個部分調試maven junit測試過濾資源?

<build> 
    <testResources> 
     <testResource> 
     <directory>src/test/resources</directory> 
     <filtering>true</filtering> 
     </testResource> 
    </testResources> 
    ... 

如何在調試器中運行此類JUnit測試?如果我在eclipse中執行測試,測試失敗,因爲測試資源沒有被過濾。如果過濾後的測試資源將寫入目標目錄的某處,我可以將其用作額外的源路徑 - 但事實並非如此。如果我嘗試使用Debug As/maven test在eclipse中運行maven build,那麼構建不會停在斷點處。任何其他想法?

回答

4

有幾種選擇。首先,您可以從命令行運行測試,指定maven.surefire.debug。默認的surefire測試是在分叉的JVM中運行的,這意味着如果你只是調試了maven進程,你將不會在測試斷點中得到任何停止。這可能是你現在看到的。另請參閱http://maven.apache.org/plugins/maven-surefire-plugin/examples/debugging.html

Othwerwise我建議在IDE中將您的項目配置爲maven項目。如果項目被配置爲Maven項目,資源過濾將在運行測試之前自動發生。至少它是如何在Idea中工作的,我認爲Eclipse和安裝的正確的maven插件一樣。

您也可以從命令行運行一次maven構建,然後手動將目標/測試類目錄添加到您的IDE配置中。工程,但是有點狡猾。

1

如果我在eclipse中執行測試,測試失敗,因爲測試資源沒有被過濾。

使用m2eclipse並且資源將在Eclipse內被過濾。