在使用testng执行测试用例时候,都会遇到测试用例执行失败,怎么再次执行失败的测试用例呢,官网给出了java代码执行测试的案例,每次执行完用例后会在test-output目录路径下保存执行失败的测试用例,可以再次执行失败的测试用例来达到重复执行。
首先创建执行失败的测试用例:
public class TestAssert {
@Test
public void TestAssert() {
Assert.assertEquals("2", 2);
}
@Test
public void TestAssertThree() {
int a=3;
Assert.assertNotNull(a);
}
@Test
public void TestAssertFour() {
String expected="aaa";
String actual="aaa";
Assert.assertSame(actual, expected,"实际结果跟预期结果不一样");
}
@Test
public void TestAssertW() {
Assert.assertTrue(1==2);
}
@Test
public void TestAssertnew(){
System.out.println("Test start");
SoftAssert assertion = new SoftAssert();
assertion.assertEquals(12, 13,"两者不相等");
System.out.println("Test complete");
System.out.println(3+8);
assertion.assertAll();
}
}
创建java代码执行测试:失败的测试用例保存在test-output/testng-failed.xml
package suit;
import org.testng.TestNG;
import java.util.ArrayList;
import java.util.List;
public class RunSuit {
public static void main(String[] args) {
TestNG testNG = new TestNG();
List<String> suites = new ArrayList<String>();
suites.add("testng-2.xml");
testNG.setTestSuites(suites);
testNG.run();
// 等待执行结束,然后去执行失败用例
TestNG testNG1 = new TestNG();
List<String> suites1 = new ArrayList<String>();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
suites1.add("test-output/testng-failed.xml");
testNG1.setTestSuites(suites1);
testNG1.run();
}
}
失败的测试用例如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite guice-stage="DEVELOPMENT" name="Failed suite [Failed suite [All Test Suite]]">
<listeners>
<listener class-name="org.uncommons.reportng.HTMLReporter"/>
<listener class-name="org.uncommons.reportng.JUnitXMLReporter"/>
</listeners>
<test name="D:/IdeaProject/interfaceRestAssured(failed)(failed)">
<classes>
<class name="TestNg.TestAssert">
<methods>
<include name="TestAssert"/>
<include name="TestAssertnew"/>
<include name="TestAssertW"/>
</methods>
</class> <!-- TestNg.TestAssert -->
</classes>
</test> <!-- D:/IdeaProject/interfaceRestAssured(failed)(failed) -->
</suite> <!-- Failed suite [Failed suite [All Test Suite]] -->