我正在使用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>
我也尝试使用排除标记而不是跳过,排除我的方案类,但没有运气。
我真的很感激你们的任何见解或想法!谢谢!
答案 0 :(得分:8)
您不需要此配置文件。只需将$ {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 :(得分:1)
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>
答案 2 :(得分:0)
仍然没有找到这样做的maven方法。
最简单的方法似乎是添加一个JVM参数并使用System.getProperty(“theconfig”)来决定是否运行方案。
满意但不完美的解决方案。
答案 3 :(得分:0)
可能您需要先add Meta data到您的方案,然后使用Meta filtering选择您要运行的方案。
这可能不是最简单的方法,但是在jbehave wiki中有明确记录,一旦你有Meta信息,你就可以灵活地以你想要的任何组合运行测试。