JBehave & Maven - how to skip scenario tests

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-22 08:34:27

问题


I'm using jbehave and the jbehave maven plugin to run a set of scenario tests.

Have my test class extending JUnitStories, and everything works nicely. Only issue is, I can't stop running the tests...

Every time I run the maven install goal, it runs the tests. I've tried adding a skip scenarios profile, below, but it doesn't stop the tests from running.

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

I've also tried using an exclude tag instead of the skip, and excluding my scenario class, but no luck.

I'd really appreciate any insight, or ideas you guys have! Thanks!


回答1:


You don't need a profile for this. Just add ${skipTests} to the configuration of the execution like this

<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>
            ...

Running mvn -DskipTests will then skip unit tests and JBhehave scenarios.




回答2:


  1. You had maven-surefire-plugin in your config.
  2. You might want to use property activation for the profile so that you can run it with the command

    mvn -DskipScenarios

  3. You don't even need the skip config if you use a profile and in this profile the executions are not present

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>



回答3:


Still found no maven method to do this.

Easiest way seems to be to add a JVM parameter and use System.getProperty("theconfig") to decide whether or not to run scenarios.

Satisfactory, but not perfect solution.




回答4:


Probably you need to first add Meta data to your scenarios, then use Meta filtering to select scenarios you want to run.

This may not be the easiest way, but it is documented clearly in jbehave wiki, and once you have Meta info in place, you will have great flexibility to run tests in any combination you want.



来源:https://stackoverflow.com/questions/7926723/jbehave-maven-how-to-skip-scenario-tests

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!