gpt4 book ai didi

automated-tests - 如何确保 @Test 方法始终先于其他方法运行,无论类、套件或组如何?

转载 作者:行者123 更新时间:2023-12-03 04:15:45 25 4
gpt4 key购买 nike

我对 TestNG 文档的阅读表明,如果我有一个像这样标记的测试方法:

  @BeforeSuite(alwaysRun = true)
@Test
public void MyTestMethod { ... }

然后 MyTestMethod 将在任何地方定义的任何其他测试之前运行,无论类、套件或组如何。但事实似乎并非如此。

有没有办法让测试方法在其他所有事情之前无条件运行? (如果失败,则不会运行其他测试。)

编辑:

测试类:

class Suite_Setup
extends BaseTestSuite
{
@BeforeSuite(alwaysRun = true)
def setup() {
System.out.println("Conducting test suite setup...")

// Verify that the internal API is configured properly and that the API host is available...
new Action(ApiHostname, new BasicCookieStore)
}
}

编辑:

答案:

我们(自动)生成自己的 TestNG.xml 文件,并且 @BeforeSuite 方法未包含在其中。一旦包含它,@BeforeSuite 就达到了预期的效果。

但是,似乎 @BeforeSuite (可能还有其他 @Before...@After... 注释) 可以@Test混合使用,它们不会抑制带注释的方法的执行,而是使其运行多次!

此外,我没有指出我正在使用哪个版本的 TestNG。现在是 6.2。

最佳答案

尝试在类级别或方法级别使用组。

就我而言,我有一组冒烟测试需要在一切之前运行,如果其中任何一个测试失败,则不应运行其他测试。

@Test(groups="smoke")
public class SmokeTests {
public void test1 {
//
}
...
}

所有其他带有测试的类(class)是:

@Test(dependsOnGroups = "smoke")
public class OtherTests {
public void test1 {
//
}
...
}

关于automated-tests - 如何确保 @Test 方法始终先于其他方法运行,无论类、套件或组如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9726109/

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