gpt4 book ai didi

webdriver - @DataProvider 忽略 @BeforeTest 和 @AfterTest 方法

转载 作者:行者123 更新时间:2023-12-03 22:48:57 25 4
gpt4 key购买 nike

我有以下代码:

@BeforeTest(alwaysRun = true)
public void setup() {
System.out.println("@BeforeTest");
}

@DataProvider
public String[][] provideData() {
System.out.println("@DataProvider");
return new String[][] {
{"string"},
{"string2"},
{"string3"}
};
}

@Test(dataProvider = "provideData")
public void test(String s) {
System.out.println("@Test");
System.out.println(s);
}

@AfterTest(alwaysRun = true)
public void tearDown() {
System.out.println("@AfterTest");
}

它向控制台产生以下输出:
@BeforeTest
@DataProvider
@Test
string
@Test
string2
@Test
string3
@AfterTest

我期待@BeforeTest 和@AfterTest 方法在测试前后运行。我正在编写 WebDriver 测试,并希望在每次数据迭代后进行设置和拆卸。我错过了什么?

最佳答案

我想我已经弄清楚了。我有一个理论,@BeforeTest 和 @AfterTest 只会在参数化测试的所有运行完成后才执行,因为只有一个 @Test 注释。将此更改为 @BeforeMethod 和 @AfterMethod 似乎给出了我想要的输出:

@DataProvider
@BeforeTest
@Test
string
@AfterTest
@BeforeTest
@Test
string2
@AfterTest
@BeforeTest
@Test
string3
@AfterTest

我相信这是因为数据提供者将其视为单个测试,但该方法执行了多次,因此它适本地遵循了前后顺序。

关于webdriver - @DataProvider 忽略 @BeforeTest 和 @AfterTest 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20057417/

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