0

Выполняю тесты на огурец, используя mvn integration-test. Если мой тестовый каталог содержит тест, который заканчивается Error parsing feature file, мои следующие тесты не запускаются вообще.Как пропустить тесты огурца с ошибкой синтаксического анализа в maven?

У меня есть 4 файла .feature, один из которых содержит недействительный шаг (не разобранный). Если я удалю этот шаг, у меня есть успешный запуск для 4-х файлов (Tests run: 23, Failures: 2, Errors: 0, Skipped: 3),

Если у меня нет, у меня есть следующее сообщение: Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.078 sec <<< FAILURE!. Я хочу Maven, чтобы продолжить тестирование после 1 недействительных файлов функций, не останавливаться на первой, так что мне нужно что-то вроде Tests run: 24, Failures: 2, Errors: 1, Skipped: 3 (мой шаг не поддается синтаксическому анализу является последним)

Фрагмент моего pom.xml:

    <plugin> 
        <artifactId>maven-failsafe-plugin</artifactId> 
        <version>2.18.1</version> 
        <executions> 
         <execution> 
          <goals> 
           <goal>integration-test</goal> 
           <goal>verify</goal> 
          </goals> 
         </execution> 
        </executions> 
        <configuration> 
         <systemPropertyVariables> 
          <cucumber.options>${cucumber.options}</cucumber.options> 
         </systemPropertyVariables> 
        </configuration> 
       </plugin> 

Вопрос: Как я могу сделать maven продолжением с другими функциями огурца после ошибки?

+0

можете ли вы поделиться соответствующей частью вашего файла 'pom.xml'? –

+0

Поместите тег игнорирования в файл свойств. И отфильтруйте тег ignore, используя отрицание в вашем бегуне. tags = {"~ @ ignore"}.Если у вас есть другие теги, сделайте этот тег «не игнорировать» условием AND. – Grasshopper

+0

Спасибо @Grasshopper за ваш комментарий, но я не хочу размещать на нем теги, мне нужно maven только для того, чтобы пометить тест как ошибку и продолжить работу. –

ответ

2

Вы не можете пропустить только ошибки синтаксического анализа, нет никаких сведений о типе ошибки для выполнения теста.

Однако, основываясь на своем опыт, вы можете получить определенное количество допустимых отказов (держать тестирование до конца вашего набора тестов или до определенной скорости приемлемых отказов) с использованием skipAfterFailureCount опционов maven-failsafe-pluginmaven-surefire-plugin имеет same вариант, если вы его используете).

С другой стороны, и с более сильным подходом, вы можете установить Maven построить игнорировать неудачи во время испытаний и продолжать испытывать весь набор, используя testFailureIgnore в maven-failsafe-plugin своей verify цели или same вариантом для maven-surefire-plugin.

Если вы не хотите, чтобы настроить их в pom.xml как строить по умолчанию, вы можете делегировать это поведение в maven profile или использовать соответствующие параметры командной строки:

mvn clean verify -Dmaven.test.failure.ignore=true 

Или (использовать первый вариант выше)

mvn clean verify -Dsurefire.skipAfterFailureCount=42 

Или (в зависимости от подключаемого модуля, который вы использовали)

mvn clean verify -Dfailsafe.skipAfterFailureCount=12 

Обратите внимание, что я использовал verify и не integration-test как фазы, так как интеграционные тесты должны в настройку и рушить контекст/окр интеграции против того, чтобы правильно выполнить интеграционные тесты в этом случае вы должны:

  • Используйте maven-failsafe-plugin и не maven-surefire-plugin
  • Используйте pre-integration-test, интеграции тест and пост-интеграционного test` правильно настройки, выполнять очистку тестовая фаза интеграции
+0

Спасибо. Я использовал отказоустойчивый плагин, к сожалению, это мне не помогло. Я редактировал вопрос, добавлял более подробную информацию. –

+0

@ БогданТимофеев вы попробовали добавить в конфигурацию вашего отказоустойчивого объявления вариант, упомянутый в этом ответе, 'testFailureIgnore' -' true' и проверить, будет ли это соответствовать вашим требованиям или нет? –

Смежные вопросы