我正在使用带有 testng 6.14.3 的 Maven。
这是我的代码结构:
testng.xml
<?xml version="1.0" encoding="UTF-8"?>
<suite name="set-3" parallel="tests" thread-count="10">
<listeners>
<listener class-name="org.uncommons.reportng.HTMLReporter" />
</listeners>
<test name="Customer Tests">
<groups>
<run>
<include name="abc"/>
</run>
</groups>
<classes>
<class name="apps.Test1_BeforeTest_Of_Test2"></class>
<class name="apps.Test2"></class>
</classes>
</test>
</suite>
Test1_BeforeTest_Of_Test2.java
public class Test1_BeforeTest_Of_Test2{
@BeforeTest(groups = {"abc"})
public void test1Method() throws Exception {
}
@AfterTest(groups={"abc"})
public void test1AfterMethod() throws Exception {
}
}
Test2.java
public class Test2{
@Test(groups = {"abc"})
public void test2Method(){
}
}
在我跑步期间,Test1_BeforeTest_Of_Test2
课程失败了。因此,Test2
被标记为已跳过。但是,当我查看在testng-failed.xml
运行结束时生成的,失败的 @BeforeTest 类(Test1_BeforeTest_Of_Test2
)不包括/列出:
testng-failed.xml
<?xml version="1.0" encoding="UTF-8"?>
<suite thread-count="10" name="Failed suite [set-3]" parallel="tests">
<listeners>
<listener class-name="org.uncommons.reportng.HTMLReporter"/>
</listeners>
<test name="Customer Tests(failed)">
<groups>
<run>
<include name="abc"/>
</run>
</groups>
<classes>
<class name="apps.Test2">
<methods>
<include name="test2Method"/>
</methods>
</class>
</classes>
</test>
</suite>
这是预期的行为吗?还是 testng-failed.xml 中的错误/差距?
理想情况下,当我们重新运行失败的测试时,我们希望 @BeforeTest 也能运行,因为它是测试 2 的先决条件。