【发布时间】:2016-09-15 21:59:02
【问题描述】:
我有一系列从命令行运行的 JBehave 测试
mvn integration-test
我正在尝试使用元标记 SpecialPurpose 来装饰测试子集,它只能按需运行:
Meta:
@SpecialPurpose
Scenario: Run this test only from the nightly build
按照Filtering with multiple metafilters in JBehave,我尝试以下命令行:
mvn integration-test -Djbehave.meta.filter="myCustomRunConf:(+SpecialPurpose)"
这会运行套件中的所有测试。为了完整起见,我也尝试过
mvn integration-test -Djbehave.meta.filter="+SpecialPurpose"
和
mvn integration-test -Dmeta.filter="+SpecialPurpose"
如https://kowalcj0.wordpress.com/2013/01/22/how-to-selectively-run-in-jbehave-stories-tagged-with-multiple-words-in-a-meta-field/ 所述。这些似乎都没有成功过滤。
为了完整起见,与 JBehave 相关的 pom.xml 段是
<build>
<plugins>
<plugin>
<groupId>net.serenity-bdd.maven.plugins</groupId>
<artifactId>serenity-maven-plugin</artifactId>
<version>1.5.0</version>
<executions>
<execution>
<id>serenity-reports</id>
<phase>post-integration-test</phase>
<goals>
<goal>aggregate</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
<include>**/integration/*.java</include>
<include>**/integration/component1/*.java</include>
<include>**/integration/component2/*.java</include>
<include>**/integration/component3/*.java</include>
</includes>
<reuseForks>false</reuseForks>
<trimStackTrace>false</trimStackTrace>
</configuration>
</plugin>
</plugins>
</build>
1) 装饰故事以供包含的正确语法是什么?
2) 什么是正确的命令行?
3) pom.xml 定义是否存在异常,拦截或破坏元过滤器?
【问题讨论】:
-
正确的参数似乎是-Dmeta.filter,根据github.com/jbehave/jbehave-tutorial/blob/master/etsy-selenium/…中的示例