t.me/atinfo_chat Telegram группа по автоматизации тестирования

Падает билд при запуске тестов через maven

Теги: #<Tag:0x00007f748ac4ed88> #<Tag:0x00007f748ac4ec70>

Здравствуйте!
У меня есть 2 класса с тестами (1 тест в каждом классе). Когда запускаю каждый по отдельности- все работает.
Когда запускаю через maven (clean, test) - билд падает
[INFO] BUILD FAILURE
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.10:test (default-test) on project Test: There are test failures.
Может проблема в BaseConfig?
@AfterTest public void tearDown(){ driver.quit(); }
Мне нужно чтобы тесты запускались последовательно: сначала проходил один, потом второй.
Спасибо!

Ну тут проблем может быть целая куча.
Нужно больше деталей - есть ошибки от падений? обычно всё таки кроме there are test failures можно что-то еще узнать.

Название класса без “Test”?

а как же аддитивность тестов?

Вот полный стектрейс

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 24.399s
[INFO] Finished at: Mon Sep 14 15:23:45 EEST 2015
[INFO] Final Memory: 28M/207M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.10:test (default-test) on project Test: There are test failures.
[ERROR] 
[ERROR] Please refer to E:\...\Test\target\surefire-reports for the individual test results.
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

Примерно так, только предлагаю названия методов без @Test. Пример - ниже.

Если от этого зависят данные (первый делает что-то, без чего второму просто не с чем работать), то всё просто - сделай один класс, функционал двух ранее имевшихся классов запихни в методы класса без аннотации @Test и потом запихни в один метод, но уже аннтоацию @Test не забудь!
:wink:

Пример содержимого нового класса:

<methodOutputType(s)> doFirstStuff()  {
//aLotOfThingsOfTheFirstMethod 
...
};
 
<methodOutputType(s)> doSecondStuff()  {
//aLotOfThingsOfTheSecondMethod 
...
};

@Test 
<methodOutputType(s)> doFirstAndSecondAsSequence() {
...
doFirstStuff();
doSecondStuff();
...
};

В моем случае названия классов такие

Хорошо, возможно у меня неправильная “хотелка”))
У меня есть два теста, который выполняют одни и те же действия с формой(заполняют ее). Разница только в том, что в одном тесте клик по одному чекбоксу, в другом - по другому - как следствие появляются новые поля.
Мне нужно чтобы и один и другой тест я могла запускать через мавен(вместе) и потом смотреть отчет по тестам и билд не падал)))

@WithTag(“1”)
@WithTag(“2”)

mvn -> -Dtags=1

Я хочу чтобы можно было сразу запустить оба теста через мавен, а не по очереди ручками. Такое возможно?

А у вас testng или junit?

testng

Проект целиком где-то можно увидеть? А то с такими темпами тема закроется через год.

П.С. То, что вы вставили, - это абсолютно неинформативный кусок лога мейвена, и уж никак не стектрейс реальной проблемы. Наиболее интересные вещи кроются выше. Как вам уже намекнули, проблема может быть где угодно - как на уровне конфигурации (что потребует просмотра pom), так и на уровне самого кода (рассинхронизация в использовании аннотаций и управлении драйвером). Чем больше информации предоставите, тем быстрей получите ответ.

1 Симпатия

Посмотрите пожалуйста тут:

Из лога все равно ничего не ясно. А если, как мавен советует, запустить с ключиком -X?

На счет вопроса в целом:

  1. Опишите Ваши тестовые классы в XML сьюте (тут сказано, как это делается) последовательно: выше - тот, который должен первее выполниться. В элементе suite добавьте атрибут preserve-order=“true”
  2. Подключите в проект плагин для мавена maven-surefire-plugin, указав в нем путь к сьюте из шага 1 (подробнее тут, раздел “Using Suite XML Files”).

Зависимости между тестами можно попробовать разруливать через группы (чтобы если первый тест упадет, второй - не запускался.) Подробнее - все на той же страничке с официальной документацией к TestNG (первая ссылка), раздел Test Groups