2011-10-28 79 views
3

我正在使用jbehave和jbehave maven插件来运行一组场景测试。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

仍然没有找到maven方法来做到这一点。

最简单的方法似乎是添加一个JVM参数并使用System.getProperty(“theconfig”)来决定是否运行方案。

令人满意但不完美的解决方案。

1
  1. 你在你的配置有Maven的万无一失,插件
  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> 
+0

这不起作用 –

7

您不需要此配置文件。只需添加$ {} 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场景。

+0

这个解决方案在我们的配置中工作 – andersand

+0

有趣的是,它对我不起作用:它记录'[DEBUG](f)skip = true'并且愉快地进行测试。 – alf

+0

我正在使用maven-release-plugin,我无法跳过测试用例。你能帮我解决这个问题吗?我正在使用此命令-Dresume = false -Darguments =“ - DskipTests”版本:准备发布:执行。我正在使用Jenkins进行构建。 –

0

也许您需要先将add Meta data应用于您的场景,然后使用Meta filtering来选择要运行的场景。

这可能并不是最简单的方法,但它已经在jbehave wiki中清楚地记录下来,并且一旦您有元信息就位,您将拥有非常大的灵活性以您想要的任意组合运行测试。