并行运行单元测试
大約是時候單元測試的開發人員能夠使用批注在Parallel中運行測試。 在今天的博客文章中,我們將介紹如何使用Easytest提供的注釋使傳統的Junit測試并行運行。 易測 是在JUnit之上構建的測試框架,可讓您輕松編寫和維護測試。 它專注于為您的應用程序編寫數據驅動測試。
讓我們首先假設一個類ItemService具有方法2的方法:
為了簡化示例,我們將省略實現。
讓我們看一下編寫并行單元測試的分步方法。
步驟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正在使用命令行/系統參數方法來啟用/禁用并行功能。 敬請關注。
翻譯自: https://www.javacodegeeks.com/2013/07/run-your-unit-tests-in-parallel.html
總結
- 上一篇: 安卓的尾插可以换成tpc的尾插吗(安卓的
- 下一篇: 武汉市中介(武汉中介备案)