Валидиране без пропускане на тестовите случаи, ако някой се провали

Имам следните тестови случаи:

  1. Вход - Изход
  2. Вход - Търсене - Изход
  3. Вход - Търсене - Кликнете върху резултат - Изход

Всички тези 3 тестови случая се считат за независими и са в рамките на един клас testNg.

Как да потвърдя първия тестов случай (т.е. как да проверя дали влизането е успешно)?

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

Как да се уверя, че валидирам всички тестови случаи и независимо дали преминават или не, трябва да продължа да изпълнявам всички тестови случаи в този клас testNG?


person swetha    schedule 09.06.2015    source източник
comment
Моля, копирайте вашия код и грешката от конзолата тук. Благодаря ти.   -  person peetya    schedule 09.06.2015
comment
@Test(priority=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
под оставащи тестови случаи имам предвид Login-search_logout и login-search-click върху сценарий резултат-излизане, за който имам още два метода, дефинирани в моя клас Testng, тъй като всички тези три тестови случая са независими един от друг, искам и трите да се изпълняват независимо на първия неуспешен.   -  person swetha    schedule 09.06.2015
comment
Всеки @Test метод е независим. Те няма да бъдат изпълнени само ако вашите тестове зависят един от друг (например ако използвате dependingOnMethods) или някой от вашите конфигурационни методи е неуспешен (например 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