[英]How to run maven tests in particular sequence?
我創建了Maven項目,其結構如下:
src/main/java
src/main/resources
src/test/java
src/test/resources
我將TestNG測試保存在src/test/java
文件夾中。 假設在此文件夾中,我有三個類:
並且每個都有幾種TestNG測試方法。
當我在命令提示符下單擊mvn clean test
時,觀察到測試按以下順序運行:
意味着第一類按字母順序排序,即GoogleTest,TwitterTest,YahooTest,然后執行每個類的一個測試,然后再次執行每個類的一個測試。 這一直持續到所有測試方法執行完成為止。
但是我想自定義測試執行。
我如何實現以下目標:
也考慮這個鏈接
在TestNG中,您使用dependsOnMethods和/或dependsOnGroups:
@Test(groups = "a")
public void f1() {}
@Test(groups = "a")
public void f2() {}
@Test(dependsOnGroups = "a")
public void g() {}
在這種情況下,g()僅在f1()和f2()完成並成功后才運行。
考慮這個鏈接 。 您可以使用以下代碼指定runOrder
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<runOrder>alphabetical</runOrder>
</configuration>
在你的pom.xml中
按字母順序排列的是testng的訂購方式。 一種方法是使用suite.xml,從中您可以根據需要自定義運行。
下面將按字母順序運行所有類,但一個接一個
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1" >
<test name="Check" preserve-order="true"> //This is true by default
<packages>
<package name="testngtests.mytests"></package>
</packages>
</test>
</suite>
如果要按特定順序執行類,則可以使用classes標記,而不要指定packages標記,並按您希望它們運行的順序放置類名稱。
<suite name="TmpSuite" >
<test name="TmpTest" >
<classes>
<class name="YahooTest" />
<class name="GoogleTest" />
<classes>
</test>
</suite>
您需要在surefire插件配置部分中指定此xml-請在此處參考using suitexml文件部分
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.