日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

maven 单元测试并行_并行运行单元测试

發布時間:2023/12/3 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 maven 单元测试并行_并行运行单元测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

maven 單元測試并行

大約是時候單元測試的開發人員能夠使用批注在Parallel中運行測試。 在今天的博客文章中,我們將介紹如何使用Easytest提供的注釋使傳統的Junit測試并行運行。 易測 是在JUnit之上構建的測試框架,可讓您輕松編寫和維護測試。 它專注于為您的應用程序編寫數據驅動測試。

讓我們首先假設一個類ItemService具有方法2的方法:

  • 帶有2個參數Double itemId和String itemType的getItems。 API類如下所述。
  • updateItem接受一個I??tem實例并在數據庫中對其進行更新。
  • public class ItemService {public List getItems (Double itemId , String itemType);public void updateItem (Item item);}

    為了簡化示例,我們將省略實現。

    讓我們看一下編寫并行單元測試的分步方法。

    第1步:

    從Maven Central Repository下載EasyTest的最新版本(或1.2或更高版本) 。

    第2步:

    接下來,讓我們使用EasyTest批注和數據驅動的測試方法為上述業務方法編寫一個簡單的單元測試。

    @RunWith(DataDrivenTestRunner.class) @DataLoader(filePaths="getItemData.csv") @TestConfigProvider(TestConfigProvider.class) public class ItemServiceTest {@Injectprivate ItemService itemService;@Beforepublic void before() {System.out.println("BEFORE");}@Testpublic List testGetItems(@Param(name="itemId")Double itemId , @Param(name="itemType")String itemType) {//Actual test conditions hereSystem.out.println("Run testGetItems");}@Testpublic void testUpdateItem(@Param(name="item") Item item) {//Actual test conditions hereSystem.out.println("Run testUpdateItem");}@Afterpublic void after() {System.out.println("AFTER");} }

    上面的示例使用EasyTest的現有功能,例如在測試文件中提供數據,并使用CDI批注注入測試bean。 如果您想了解有關EasyTest中的@TestConfigProvider和依賴注入的更多信息,請參見我以前的博客文章。 如果您想進一步了解如何使用EasyTest編寫數據驅動測試,可以訪問EasyTest的WIKI Pages 。

    現在,上面是運行簡單的數據驅動單元測試的示例。 以上所有測試將依次進行串行測試。 假設每種測試方法在getItemData.csv文件中指定了兩組測試數據,則在運行上述測試時,我們將在控制臺上獲得以下內容:

    BEFORE Run testGetItems AFTERBEFORE Run testGetItems AFTERBEFORE Run testUpdateItem AFTERBEFORE Run testUpdateItem AFTER

    步驟3:

    接下來,讓上述測試并行運行。 只需在類級別包含@Parallel批注,并提供要運行的線程數。 對于上述測試用例,我們將運行兩個線程。

    @RunWith(DataDrivenTestRunner.class) @DataLoader(filePaths="getItemData.csv") @TestConfigProvider(TestConfigProvider.class) @Parallel(threads=2) public class ItemServiceTest {@Injectprivate ItemService itemService;@Beforepublic void before() {System.out.println("BEFORE");}@Testpublic List testGetItems(@Param(name="itemId")Double itemId , @Param(name="itemType")String itemType) {//Actual test conditions hereSystem.out.println("Run testGetItems");}@Testpublic void testUpdateItem(@Param(name="item") Item item) {//Actual test conditions hereSystem.out.println("Run testUpdateItem");}@Afterpublic void after() {System.out.println("AFTER");} }

    注意lass級別的@Parallel批注。

    運行該測試時,控制臺輸出看起來像這樣(運行相同的測試時可能會有所不同):

    BEFORE BEFORE Run testGetItems BEFORE Run testUpdateItem AFTER Run testGetItems BEFORE AFTER Run testUpdateItem AFTER AFTER

    從上面的控制臺輸出中可以看到,測試是同時運行的,這就是為什么看到這樣的分布式控制臺輸出的原因。

    結論

    在上面的示例中,我們看到了如何在Parallel中運行測試。 同樣,當使用Maven等構建工具構建測試時,這些測試將并行運行。 這對您具有成千上萬的單元測試并且它們需要幾分鐘的運行時間的場景有很大的幫助。

    EasyTest正在使用命令行/系統參數方法來啟用/禁用并行功能。 敬請關注。

    參考: JavaWorld Blog博客上的JCG合作伙伴 Anuj Kumar 并行運行單元測試 。

    翻譯自: https://www.javacodegeeks.com/2013/07/run-your-unit-tests-in-parallel.html

    maven 單元測試并行

    總結

    以上是生活随笔為你收集整理的maven 单元测试并行_并行运行单元测试的全部內容,希望文章能夠幫你解決所遇到的問題。

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