日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TestNG:在一个测试类中使用@DataProvider依次运行测试

發布時間:2023/12/3 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TestNG:在一个测试类中使用@DataProvider依次运行测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

許多Java開發人員和自動化測試工程師在他們的工作中都使用TestNG作為測試框架。 我也不例外。 這是一個顯而易見的選擇,因為TestNG提供了非常強大的工具集,使處理各種測試變得更加容易。 為了證明這一點,我將在本文中向您展示如何解決一項不平凡的任務。

問題

如何在單個類中以不同的數據集按特定順序運行測試? 好吧,好像我用一句話就暴露了這個問題。 但是,如果您要我以更嚴格的形式提出這句話,我將提供以下列表:

  • 多種測試方法
  • 一門考試
  • 序列運行
  • 每種測試方法都有不同的數據集

這里總結一下這個問題的抽象模式:

TestClass { firstTest(String testData) secondTest(String testData) thirdTest(String testData) }TestDataSets { “string 1″ “string 2″ }

運行這些測試應得出以下結果:

firstTest(string 1) secondTest(string 1) thirdTest(string 1)firstTest(string 2) secondTest(string 2) thirdTest(string 2)

在突出顯示并解釋了問題之后,我們可以繼續解決問題。

TestNG的實現

我將使用最簡化的代碼構造,但是您可以使用這種方法通過一些特定的邏輯對其進行自定義。

package kill.me.later;import static org.testng.Assert.assertTrue;import org.testng.annotations.Test;public class SomeTest {private int id = 0;private String account = "";public SomeTest(int id, String account) {this.id = id;this.account = account;}@Testpublic void firstTest() {System.out.println("Test #1 with data: "+id+". "+account);assertTrue(true);}@Testpublic void secondTest() {System.out.println("Test #2 with data: "+id+". "+account);assertTrue(true);}@Testpublic void thirdTest() {System.out.println("Test #3 with data: "+id+". "+account);assertTrue(true);}}

檢查上面的代碼,每個人都可以注意到我使用了常規的TestNG @Test批注應用于void方法。 我也聲明了一個構造函數,但是其目的將在后面討論。 TestNG具有非常有用的注釋– @Factory和@DataProvider 。 我建議在官方TestNG文檔站點上閱讀有關它們的信息 。 在閱讀這些注釋時,我將繼續進行實際操作:

package kill.me.later;import org.testng.annotations.DataProvider; import org.testng.annotations.Factory;public class SampleFactory {@Factory(dataProvider="dp")public Object[] createInstances(int id, String account) {return new Object[] {new SomeTest(id, account)};}@DataProvider(name="dp")public static Object[][] dataProvider() {Object[][] dataArray = {{1, "user1"},{2, "user2"}};return dataArray;}}

最后一個代碼段提供了SomeTest類中每個測試方法的運行,并在dataProvider中聲明了數據集。 但是,如果嘗試在TestNG的幫助下運行SampleFactory類,則不會從“問題”部分獲得測試方法的執行順序。 為了實現順序執行測試方法的順序,您需要使用TestNG XML啟動器:

< !DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

請注意group-by-instances參數。 正是它為測試方法的執行提供了理想的順序。 因此,現在您可以輕松組織此類DDT運行的測試。

參考: TestNG:在Fruzenshtein的Notes博客上,在我們的JCG合作伙伴 Alexey Zvolinskiy的一個測試類中 , 使用@DataProvider依次運行測試 。

翻譯自: https://www.javacodegeeks.com/2014/01/testng-run-tests-sequentially-with-dataprovider-inside-one-test-class.html

總結

以上是生活随笔為你收集整理的TestNG:在一个测试类中使用@DataProvider依次运行测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。