簡體   English   中英

如何使用數據提供程序在 testNG 上並行運行測試?

[英]How to run tests in parallel on testNG using data provider?

我想使用數據提供程序在 testng 上並行運行許多測試。 我想要一個線程來運行一個測試和下一個線程來運行下一個測試。 我該怎么做呢?

這是我嘗試過的,但沒有奏效。

@DataProvider(name = "testList", parallel = true)

在xml中:

套件名稱="knowledgetest" verbose="5" configfailurepolicy="continue" data-provider-thread-count="10" parallel="methods" thread-count="5"

也許您沒有將DataProvider傳遞給您的構造函數。

您需要執行以下操作才能並行運行測試:

測試NG配置:

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

<suite name="TestNG-OddCheckerTest" verbose="1" parallel="methods" thread-count="10" data-provider-thread-count="10">
    <test name="OddCheckerTest">
        <classes>
            <class name="com.mypackage.test.OddCheckerTest" />
        </classes>
    </test>
</suite>

測試類:

package com.mypackage.test;

import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Factory;
import org.testng.annotations.Test;

@Test
public class OddCheckerTest {

    private long number;

    @Factory(dataProvider = "numberList")
    public OddCheckerTest(long number) {
        this.number = number;
    }

    @DataProvider(name = "numberList", parallel = true)
    public static Object[][] getNumber() {
        return new Object[][]{
                {1}, {3}, {5}, {77}, {111}, {123}, {287}, {305}, {505}, {607}, {709}, {803}, {805}
        };
    }

    @Test
    public void testForOdd() throws InterruptedException {
        System.out.println(Thread.currentThread().getName() +  ": checking that [ " + number + " ] it's odd!");
        Thread.sleep(1000);
        Assert.assertTrue(number % 2 == 1, "Number [" + number + "] is not odd!");
    }
}

輸出: 在此處輸入圖片說明

暫無
暫無

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

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