Пакет testng.xml Пропустить все тестовые классы в случае сбоя, это происходит только для браузера Microsoft Edge.

Выполнение нескольких классов с набором testng.xml, где, если какой-либо отдельный класс или тест не пройден, он пропустит только этот конкретный тест и перейдет к следующему набору тестов для Firefox и Chrome. Но в случае с Microsoft Edge он не может справиться с набором Fail Test. И он создает скрипт 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 классов, где он будет выполнять набор тестов входа и после этого регистрировать как набор. Но если войти в систему не удастся, он не запустит 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?


person Ishita Shah    schedule 14.06.2018    source источник
comment
в идеале он не должен вести себя иначе.   -  person cruisepandey    schedule 14.06.2018
comment
@cruisepandey Да, надеюсь, то же самое. Он должен работать так же, как Chrome, Firefox. Но это проблема для Edge.   -  person Ishita Shah    schedule 14.06.2018
comment
попробуйте использовать последнюю версию всех testng, edge driver, edge browser и selenium, возможно, это поможет.   -  person cruisepandey    schedule 14.06.2018
comment
@IshitaShah - Не могли бы вы отредактировать свой вопрос и показать нам, как выглядит ваш код? TestNG точно здесь не задействован, но я предполагаю, что это, возможно, ваша реализация для IE, которая вызывает это. Но это можно подтвердить только после просмотра исходного кода.   -  person Krishnan Mahadevan    schedule 14.06.2018
comment
Использование последней версии Selenium Java 3.12, Testng 6.14.3 и пограничной сборки 16299.   -  person Ishita Shah    schedule 14.06.2018
comment
@KrishnanMahadevan Добавлены соответствующие коды,   -  person Ishita Shah    schedule 14.06.2018


Ответы (1)


Это ограничение браузера Edge, где он может вызывать только один экземпляр для тестирования веб-драйверов.

Это относится к моему случаю, когда произошел сбой и вызов другого экземпляра, чтобы открыть браузер Edge другого пакета, но драйвер Edge пока не поддерживается. Так что получилось Skip and fail для остальных.

https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/13618786/ Нажмите, чтобы посмотреть

person Ishita Shah    schedule 14.06.2018