簡體   English   中英

Maven Failsafe 沒有選擇 testng 測試套件,但 Surefire 確實如此

[英]Maven Failsafe not picking up testng test suite, but Surefire does

這里有點新手,但我正在嘗試使用 Maven Failsafe 插件在我的 Java 項目中使用 TFS 2015 中的 Maven 任務運行 TestNG 測試。我最初使用的是 Surefire 插件,但想改用 Failsafe,並在更改時代碼稍微根據TestNG 的文檔,Failsafe 插件將運行 TestNG 測試類而不是測試套件(並且因為我使用參數而失敗)。 當切換回 Surefire 時,測試作為測試套件運行並通過。

我嘗試了不同版本的 Failsafe,但沒有任何改變。 有什么我遺漏的,Failsafe 需要識別測試套件嗎?

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>2.19.1</version>
            <configuration>
                <suiteXmlFiles>
                    <suiteXmlFile>testng.xml</suiteXmlFile>
                </suiteXmlFiles>
            </configuration>
        </plugin>

(與Surefire)

         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.13</version>
            <configuration>
                <suiteXmlFiles>
                    <suiteXmlFile>testng.xml</suiteXmlFile>
                </suiteXmlFiles>
            </configuration>
        </plugin>

(testng.xml)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
  <parameter name="urlsource" value="https://httpbin.org/get"></parameter>
  <test name="Test">
    <classes>
      <class name="test.java.TestGenericRESTAPI"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->

您的配置根本沒有為我運行 Failsafe,只有 Surefire。 根據Failsafe docs ,我配置了目標:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <version>2.19.1</version>
    <executions>
        <execution>
            <goals>
                <goal>integration-test</goal>
                <goal>verify</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <suiteXmlFiles>
            <suiteXmlFile>testng.xml</suiteXmlFile>
        </suiteXmlFiles>
    </configuration>
</plugin>

現在 Surefire 和 Failsafe 都在mvn verify上執行測試(並且 Failsafe 正確傳遞參數)。 如果你想跳過 Surefire 測試,你可以這樣做:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.18.1</version>
    <configuration>
        <skipTests>true</skipTests>
    </configuration>
</plugin>

現在 Surefire 仍然在mvn verify上運行,但實際上並沒有運行任何測試。 我不知道如何完全禁用 Surefire,因此歡迎提出任何建議或改進。

請注意,您的 IDE 可能仍會直接調用 Surefire(NetBeans 為我做的)。 一些特定於 IDE 的設置在這里可能會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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