testng.xml suite 跳过所有测试 类 如果它失败,它只发生在 Microsoft Edge 浏览器上
testng.xml suite Skip all test classes if it gets fail, it happens only for Microsoft Edge Browser
使用 testng.xml 套件执行多个 classes,如果任何单个 class 或测试失败,它将仅跳过该特定测试并继续下一个测试套件,因为Firefox 和 Chrome。但是,对于 Microsoft edge,它无法处理失败测试套件。并为其余所有创建 Fail/Skip 脚本。
参考 .XMl 套件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="tests" verbose="1">
<test name="Login-Registration Test" preserve-order="true">
<classes>
<class name="myAccount.login" />
<class name="myAccount.registration" />
</classes>
</test>
<!-- Test -->
</suite> <!-- Suite -->
这里是 2 classes 的例子,它将执行登录测试套件,然后注册为套件。但是,如果登录失败,它将不会执行 Edge 注册套件。适用于 Firefox 和 Chrome。
我正在使用 WebDriver
调用浏览器:
// driver = new ChromeDriver();
// driver = new FirefoxDriver();
driver = new EdgeDriver();
在每个 @Test 之后调用 @AfterMethod 注释,使用 ITestResult
@AfterMethod
public void calltestStatus(ITestResult result) throws IOException
{
testStatus(result);
count++;
driver.manage().deleteAllCookies();
}
这里是 ITestResult 定义,
public void testStatus(ITestResult result) throws IOException
{
if (result.getStatus() == ITestResult.FAILURE) {
testResult = "Test Fail :" + result.getName();
testResult = "Details of Fail Testcase:" + result.getThrowable();
extentReport.flush();
} else if (result.getStatus() == ITestResult.SUCCESS) {
testResult = "Test Pass :" + result.getName();
} else if (result.getStatus() == ITestResult.SKIP) {
testResult = "Test Skip :" + result.getName();
} else {
testResult = "Test Undefined :" + result.getName() + "<br>Status : " + result.getStatus();
testResult = "Details of undefined Testcase:" + result.getThrowable();
}
}
TestNG 或 Selenium 对 Edge 的工作方式不同?
这是Edge浏览器的局限性,它只能调用单个实例进行Web驱动测试。
它与我的情况有关,当它失败并调用另一个实例打开另一个套件的边缘浏览器时,但到目前为止不支持边缘驱动程序。所以它得到了 Skip 和 fail for rest all。
https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/13618786/
使用 testng.xml 套件执行多个 classes,如果任何单个 class 或测试失败,它将仅跳过该特定测试并继续下一个测试套件,因为Firefox 和 Chrome。但是,对于 Microsoft edge,它无法处理失败测试套件。并为其余所有创建 Fail/Skip 脚本。
参考 .XMl 套件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="tests" verbose="1">
<test name="Login-Registration Test" preserve-order="true">
<classes>
<class name="myAccount.login" />
<class name="myAccount.registration" />
</classes>
</test>
<!-- Test -->
</suite> <!-- Suite -->
这里是 2 classes 的例子,它将执行登录测试套件,然后注册为套件。但是,如果登录失败,它将不会执行 Edge 注册套件。适用于 Firefox 和 Chrome。
我正在使用 WebDriver
调用浏览器:
// driver = new ChromeDriver();
// driver = new FirefoxDriver();
driver = new EdgeDriver();
在每个 @Test 之后调用 @AfterMethod 注释,使用 ITestResult
@AfterMethod
public void calltestStatus(ITestResult result) throws IOException
{
testStatus(result);
count++;
driver.manage().deleteAllCookies();
}
这里是 ITestResult 定义,
public void testStatus(ITestResult result) throws IOException
{
if (result.getStatus() == ITestResult.FAILURE) {
testResult = "Test Fail :" + result.getName();
testResult = "Details of Fail Testcase:" + result.getThrowable();
extentReport.flush();
} else if (result.getStatus() == ITestResult.SUCCESS) {
testResult = "Test Pass :" + result.getName();
} else if (result.getStatus() == ITestResult.SKIP) {
testResult = "Test Skip :" + result.getName();
} else {
testResult = "Test Undefined :" + result.getName() + "<br>Status : " + result.getStatus();
testResult = "Details of undefined Testcase:" + result.getThrowable();
}
}
TestNG 或 Selenium 对 Edge 的工作方式不同?
这是Edge浏览器的局限性,它只能调用单个实例进行Web驱动测试。
它与我的情况有关,当它失败并调用另一个实例打开另一个套件的边缘浏览器时,但到目前为止不支持边缘驱动程序。所以它得到了 Skip 和 fail for rest all。
https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/13618786/