JBehave & Maven — как пропустить тесты сценариев

Я использую 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>

Я также пытался использовать тег исключения вместо пропуска и исключать класс сценария, но безуспешно.

Я был бы очень признателен за любую информацию или идеи, которые у вас есть, ребята! Спасибо!


person john.harvey    schedule 28.10.2011    source источник


Ответы (4)


Для этого не нужен профиль. Просто добавьте ${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.

person Mogens Villadsen    schedule 23.11.2011
comment
Как ни странно, у меня не работает: он регистрирует [DEBUG] (f) skip = true и успешно продолжает тесты. - person alf; 09.01.2013
comment
Я использую maven-release-plugin и не могу пропустить тестовый пример. Не могли бы вы помочь мне в этом. Я использую эту команду -Dresume=false -Darguments=-DskipTests выпуск:подготовить выпуск:выполнить. Я использую Jenkins для сборки. - person JDGuide; 19.12.2014

  1. В вашей конфигурации был maven-surefire-plugin.
  2. You might want to use property activation for the profile so that you can run it with the command

    mvn -DskipScenarios

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

Here is a working example:

<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>
person Balint Pato    schedule 18.11.2011

Все еще не нашел никакого метода maven для этого.

Самый простой способ - добавить параметр JVM и использовать System.getProperty("theconfig"), чтобы решить, запускать сценарии или нет.

Удовлетворительное, но не идеальное решение.

person john.harvey    schedule 31.10.2011

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

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

person zihaoyu    schedule 19.11.2012