testng.xml suite Пропустить все тестовые классы, если они не пройдены, это происходит только для Microsoft Edge Browser
Выполнение нескольких классов с набором testng.xml, где Если какой-либо один класс или тест не пройден, он пропустит только этот конкретный тест и перейдет к следующему набору тестов, для Firefox и Chrome. Но, в случае Microsoft, он не может справиться с набором Fail Test. И это создает скрипт Fail/Skip для отдыха всех.
Ссылка.XMl Suite:
<?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-х классов, где он будет выполнять Login Test Suite и после этого Регистрация в качестве Suite. Но в случае сбоя входа в систему он не будет выполнять Registration Suite for Edge. Который работает на Firefox и Chrome.
Я вызываю браузеры с WebDriver
:
// driver = new ChromeDriver();
// driver = new FirefoxDriver();
driver = new EdgeDriver();
Вызов аннотации @AfterMethod после каждого @Test с 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?
1 ответ
Это ограничение Edge Browser, где он может вызывать только один экземпляр для тестирования веб-драйверов.
Это относится к моему случаю: когда произошел сбой, и вызовите другой экземпляр, чтобы открыть Edge Browser другого пакета, но драйвер Edge пока не поддерживается. Так что получил Пропустить и потерпеть неудачу для всех остальных.
https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/13618786/