gpt4 book ai didi

java - 带有 DataProvider 的 TestNG @AfterMethod

转载 作者:搜寻专家 更新时间:2023-11-01 03:23:20 25 4
gpt4 key购买 nike

我在玩 TestNG,发现当我使用 dataProvider 时,@AfterMethod 和 @BeforeMethod 被调用了不止一次。是否可以在使用从 dataProvider 传递的所有参数执行 @Test 后仅调用一次方法。比如我们可以在 dataProvider 调用 5 次“testPrimeNumberChecker”后仅调用一次“tearDown”方法。

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

public class ParamTestWithDataProvider1 {
private PrimeNumberChecker primeNumberChecker;
private static final Logger logger = Logger.getLogger(ParamTestWithDataProvider1.class);

@BeforeMethod
public void initialize() {
logger.info("Before Method Fired !! - " );
primeNumberChecker = new PrimeNumberChecker();
}

@@AfterMethod
public void tearDown() {
logger.info("After Method Fired !! " );
}

@DataProvider(name = "test1")
public static Object[][] primeNumbers() {
return new Object[][] { { 2, true }, { 6, false }, { 19, true },
{ 22, false }, { 23, true } };
}

@Test(dataProvider = "test1")
public void testPrimeNumberChecker(Integer inputNumber,
Boolean expectedResult) {
logger.info(inputNumber + " " + expectedResult);
Assert.assertEquals(expectedResult,
primeNumberChecker.validate(inputNumber));
}
}

最佳答案

一种方法是使用@BeforeGroups 和@AfterGroups。让您的测试属于一个组,然后使用 Before/After groups 注释为测试进行一次设置/拆卸。

关于java - 带有 DataProvider 的 TestNG @AfterMethod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22798309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com