Проверка без пропуска тестовых случаев в случае сбоя

У меня есть следующие тестовые случаи:

  1. Вход - Выход
  2. Вход - Поиск - Выход
  3. Войти - Поиск - Нажмите на результат - Выйти

Все эти 3 теста считаются независимыми и находятся в пределах одного класса testNg.

Как мне проверить первый тестовый пример (т.е. как проверить, успешно ли выполнен вход)?

Я пытался использовать assert, но когда assert терпит неудачу, все остальные тестовые случаи (которые на самом деле не зависят от первого) будут пропущены.

Как мне убедиться, что я проверяю все тестовые случаи, и независимо от того, пройдены они или нет, я должен продолжать выполнять все тесты в этом классе testNG?


person swetha    schedule 09.06.2015    source источник
comment
Скопируйте код и ошибку из консоли сюда. Спасибо.   -  person peetya    schedule 09.06.2015
comment
@Test (приоритет = 0) public void Authentication () выдает InterruptedException { authPage = new AuthPage (драйвер); authPage.login(KYCASH03, PPCQ@123); Фактическая строка =driver.getTitle(); Ожидаемая строка = Общий поиск; Assert.assertTrue(helpdesk.isDisplayed()); authPage.logout();   -  person swetha    schedule 09.06.2015
comment
Улучшения форматирования, структуры и орфографии.   -  person likeitlikeit    schedule 09.06.2015
comment
Что вы имеете в виду, что все оставшиеся тестовые случаи будут пропущены? Вы имеете в виду 2. и 3. тестовые случаи или выход из системы? Потому что, согласно вашему коду, выход из системы не будет выполняться после сбоя Assert, но действие logout() не является тестовым случаем.   -  person peetya    schedule 09.06.2015
comment
под оставшимися тестовыми примерами я подразумеваю вход в систему-search_logout и вход в систему-поиск-щелчок по сценарию результата-выхода из системы, для которого у меня есть еще два метода, определенные в моем классе Testng, поскольку все эти три тестовых примера независимы друг от друга, я хочу, чтобы все три запускались независимо отказа первого.   -  person swetha    schedule 09.06.2015
comment
Каждый метод @Test является независимым. Они не будут запускаться, только если ваши тесты зависят друг от друга (например, если вы используете dependOnMethods) или один из ваших методов конфигурации не работает (например, afterMethod). Если вы скопируете свой полный код в свой первый пост в правильном формате, возможно, мы сможем отладить ваш код.   -  person peetya    schedule 09.06.2015


Ответы (1)


Похоже, вы ищете ErrorCollector. Или вы можете использовать собственный SoftAssert. Это моя реализация ErrorCollector для JUnit:

    @Rule //collects errors without aborting test
    public ErrorCollector collector = new ErrorCollector();

    @Test
    public void SampleTest() throws Exception {

...
        try {

            // Verify label
            Assert.assertEquals("label"
                    ,driver.findElement(By.xpath("some_xpath")).getText());

        } catch (AssertionError e) {
            System.out.println("Report Error: " + e);
            collector.addError(e);
        }

...

}
person Ivan Litskevich    schedule 09.06.2015