gpt4 book ai didi

java - TestNg 在组中运行时跳过@BeforeSuite 和@BeforeClass

转载 作者:行者123 更新时间:2023-11-29 09:52:00 25 4
gpt4 key购买 nike

当使用 groups 运行 TestNg 时,它会跳过 @BeforeClass 和 @BeforeSuite 方法。但是在没有组的情况下运行它会执行@BeforeClass 和@BeforeSuite

代码:

class TestStructure {

@BeforeClass
public void loadData() {
System.out.println("loaded");
}

@BeforeSuite
public void loadSysData() {
System.out.println("loaded2");
}
}


class Test extends TestStructure
{

@Test(groups={"UAP"})
public void test1
{
System.out.println("Test 2");
}

}

testng.xml文件是

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="UAP suite" parallel="false" thread-count="1" verbose="1">
<listeners>
<listener class-name="com.module.listener.TestNGListener" />
</listeners>

<test name="TestSet 1" parallel="false" preserve-order="true">
<groups>
<run>
<include name="UAP" />
</run>
</groups>
<classes>
<class name="Test" />
</classes>
</test>
</suite>

如果我从 xml 中删除组,则执行 @BeforeClass@BeforeSuite。请帮忙。

最佳答案

要解决此问题,您需要考虑两种选择。

  1. 为所有 beforeXXX 和 afterXXX 方法添加属性 alwaysRun=true。如果您希望这些方法在不考虑测试组的情况下运行
  2. 如果您只想将 beforeXXX 和 afterXXX 关联到特定的一组组,在这种情况下,您需要使用属性 groups 将这些方法绑定(bind)到该组。

根据您的用例,您需要将注释更新为

@BeforeClass(alwaysRun=true)@BeforeSuite(alwaysRun=true)

@BeforeClass(groups={"UAP"})@BeforeSuite(groups={"UAP"})

希望这能回答您的问题。

进一步引用 - http://testng.org/doc/documentation-main.html#annotations

关于java - TestNg 在组中运行时跳过@BeforeSuite 和@BeforeClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44039365/

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