JBehave

#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:

  1. У вас в конфигурации был maven-surefire-plugin.
  2. Возможно, вы захотите использовать активацию свойства для профиля, чтобы вы могли запустить его с помощью команды

    mvn -DskipScenarios

  3. Вам даже не нужна конфигурация пропуска, если вы используете профиль, и в этом профиле выполнения отсутствуют

Вот рабочий пример:

 <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, и как только у вас будет метаинформация, у вас будет большая гибкость для запуска тестов в любой комбинации, которую вы хотите.