簡體   English   中英

如何使 maven-surefire-plugin 與 Eclipse 中的 TestNG 一起工作

[英]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 & resourcesmaven-resources-plugin的一部分

compile & test-compilemaven-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM