[英]How to make maven-surefire-plugin work with TestNG in Eclipse
我不能讓這兩個在 eclipse 中一起工作
我可以像這樣設置surefire插件
<suiteXmlFiles>
<suiteXmlFile>${basedir}/src/test/resources/testng.xml</suiteXmlFile>
</suiteXmlFiles>
<testResources>
<testResource>
<directory>${project.basedir}/src/test/java</directory>
<includes>
<include>**/*.*</include>
</includes>
</testResource>
<testResource>
<directory>${project.basedir}/src/test/resources</directory>
<includes>
<include>**/*</include>
</includes>
</testResource>
</testResources>
並運行$mvn test
並且所有資源都被編譯並移動到/target/test-classes
,它工作正常。
但是,如果我運行$mvn clean
然后使用 TestNG 視圖運行一些測試,則/target/test-classes
中沒有編譯任何內容,因此我要么必須在此之前運行測試階段,要么以某種方式使用maven-compiler-plugin:testCompile
目標編譯測試資源...
但是maven-compiler-plugin:2.3.2:testCompile
沒有像通過testResources
配置的surefire插件那樣設置。 它只是將測試源代碼編譯成測試類
我應該怎么做才能讓 testNG 像運行surefire插件一樣執行? 我不知何故需要<testResources>
產生的效果
testResources & resources
是maven-resources-plugin
的一部分
compile & test-compile
是maven-compiler-plugin
的一部分
因此,您所要做的就是在通過 TestNG 視圖運行測試之前單擊調用所有這些階段和目標的按鈕
compile
test-compile
maven-resources-plugin:resources
maven-resources-plugin:testResources
Also, and this is very important, whenever you run test(s) from the TestNG view, eclipse creates a temporary testng.xml
definition with the test(s) you have clicked on, either a test or a class of tests. 因此,如果您使用 testNG 通過 Eclipse 的運行方式運行配置,那么通過 SureFire 插件運行時您在 testng.xml 中的其他設置會丟失...它看起來像這樣
/tmp/testng-eclipse-388280625/testng-customsuite.xml
-
<suite name="Default suite">
<test verbose="2" name="Default test">
<classes>
<class name="com.example.tests.selenium.SubmitUploadFormTest"/>
</classes>
</test>
</suite>
它有一個方便的方法來處理這個問題 - 在 eclipse Z3327777618BCF7CEFAZ 首選項中設置模板 testng.xml 文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.