我的TestNG.xml会导致@BeforeTest方法的执行,即使该类中没有适合执行的测试
My TestNG.xml由一组此类标记组成:-我的TestNG.xml会导致@BeforeTest方法的执行,即使该类中没有适合执行的测试,testng,Testng,My TestNG.xml由一组此类标记组成:- <test name="Order"> <groups> <run> <include name="Smoke" /> <exclude name="Regression"></exclude> </run> </groups> <classes>
<test name="Order">
<groups>
<run>
<include name="Smoke" />
<exclude name="Regression"></exclude>
</run>
</groups>
<classes>
<class name="com.test.myproject.class1"/>
</classes>
</test>
OP发布代码后更新:
好的,我可以看到这里的问题。请从@BeforeTest和@BeforeTest方法中删除“alwaysRun=true”。它将覆盖您的组执行顺序
使用它没有多大意义,因为您仍然可以获得所需的行为(即,在执行任何@BeforeTest之前,不考虑您的alwaysRun选项,后面跟着@BeforeThod,如果您想使用它,还有另一个名为@BeforeClass的标记,它位于@BeforeTest之前)
如果从长远来看,您希望对您的组的执行方式有更多的控制,那么也要看一看(即,如果“吸烟”失败,不要执行“回归”)
祝你好运
OP发布代码后更新:
好的,我可以看到这里的问题。请从@BeforeTest和@BeforeTest方法中删除“alwaysRun=true”。它将覆盖您的组执行顺序
使用它没有多大意义,因为您仍然可以获得所需的行为(即,在执行任何@BeforeTest之前,不考虑您的alwaysRun选项,后面跟着@BeforeThod,如果您想使用它,还有另一个名为@BeforeClass的标记,它位于@BeforeTest之前)
如果从长远来看,您希望对您的组的执行方式有更多的控制,那么也要看一看(即,如果“吸烟”失败,不要执行“回归”)
祝你好运
组
也可在@BeforeX
/@AfterX
上找到
添加适当的值,它应该会按预期工作
组
也可在@BeforeX
/@AfterX
上找到
添加适当的值,它应该会按预期工作 您正在并行运行测试吗?我想不会。您的组注释是在@Test级别上还是在@Class级别上?一些代码也可能有用。只是一个回答上述问题的示例。嗨,我不是并行运行测试。我已经更新了上面的问题,以包括Java代码。希望能有帮助。正在等待解决此问题的方法您正在并行运行测试吗?我想不会。您的组注释是在@Test级别上还是在@Class级别上?一些代码也可能有用。只是一个回答上述问题的示例。嗨,我不是并行运行测试。我已经更新了上面的问题,以包括Java代码。希望能有帮助。等待获得解决方案我无法删除alwaysrun=true,因为即使测试失败,我也希望AfterMethod执行。然后,您需要使用(dependsOnMethods)和优先级来获得所需的效果我无法删除alwaysrun=true,因为即使测试失败,我也希望AfterMethod执行。然后,您需要使用(取决于方法)以及获得所需效果的优先级
@Listeners(AUTEventListener.class)
public class MyTest extends BaseTestCase {
@Parameters({ "browserName", "gridHubUrl", "gridNodeUrl" })
@BeforeTest(alwaysRun = true)
public void testInit(String browserName, String gridHubUrl, String gridNodeUrl) throws Exception {
//Before Test logic is here
}
@BeforeMethod(alwaysRun = true)
public void openBrowser() {
//BeforeMethod logic is here
}
@Test(priority = 1, groups={"Regression"}, description = "Testcase to Verify that a claimant is able to file a non cargo claim")
@TestInfo(testcaseIds={"TC-12344"})
public void TC_12344_MyTestMethod() throws Exception
{
// Test is here
}