#maven #maven-plugin #scenarios #jbehave
#maven #maven-плагин #сценарии #jbehave
Вопрос:
Я использую jbehave и плагин jbehave maven для запуска набора тестов сценариев.
Пусть мой тестовый класс расширяет JUnitStories, и все работает хорошо. Единственная проблема в том, что я не могу прекратить выполнение тестов…
Каждый раз, когда я запускаю цель установки maven, она запускает тесты. Я попытался добавить профиль пропустить сценарии, приведенный ниже, но это не останавливает выполнение тестов.
<profile>
<id>skipScenarios</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</profile>
Я также пытался использовать тег исключения вместо пропуска и исключить мой класс сценариев, но безуспешно.
Я был бы очень признателен за любую информацию или идеи, которые у вас есть, ребята! Спасибо!
Ответ №1:
Для этого вам не нужен профиль. Просто добавьте $ {skipTests} в конфигурацию выполнения следующим образом
<plugin>
<groupId>org.jbehave</groupId>
<artifactId>jbehave-maven-plugin</artifactId>
<version>${jbehave.core.version}</version>
<executions>
<execution>
<id>unpack-view-resources</id>
<phase>process-resources</phase>
<goals>
<goal>unpack-view-resources</goal>
</goals>
</execution>
<execution>
<id>embeddable-stories</id>
<phase>test</phase>
<configuration>
<includes>
<include>${embeddables}</include>
</includes>
<excludes />
<skip>${skipTests}</skip>
...
Запуск mvn -DskipTests затем пропустит модульные тесты и сценарии JBhehave.
Комментарии:
1. Как ни странно, у меня это не работает: он регистрируется
[DEBUG] (f) skip = true
и успешно продолжает тесты.2. Я использую maven-release-plugin и не могу пропустить тестовый пример. Не могли бы вы, пожалуйста, помочь мне в этом. Я использую эту команду -Dresume=false -Darguments=»-DskipTests» выпуск: подготовка выпуска: выполнение. Я использую Jenkins для сборки.
Ответ №2:
- У вас в конфигурации был maven-surefire-plugin.
- Возможно, вы захотите использовать активацию свойства для профиля, чтобы вы могли запустить его с помощью команды
mvn -DskipScenarios
- Вам даже не нужна конфигурация пропуска, если вы используете профиль, и в этом профиле выполнения отсутствуют
Вот рабочий пример:
<profile>
<id>skipScenarios</id>
<activation>
<property>
<name>skipScenarios</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.jbehave</groupId>
<artifactId>jbehave-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
Ответ №3:
По-прежнему не найдено метода maven для этого.
Кажется, самый простой способ — добавить параметр JVM и использовать System.getProperty(«theconfig»), чтобы решить, запускать сценарии или нет.
Удовлетворительное, но не идеальное решение.
Ответ №4:
Вероятно, вам нужно сначала добавить метаданные в свои сценарии, а затем использовать мета-фильтрацию для выбора сценариев, которые вы хотите запустить.
Возможно, это не самый простой способ, но он четко задокументирован в jbehave wiki, и как только у вас будет метаинформация, у вас будет большая гибкость для запуска тестов в любой комбинации, которую вы хотите.