2011-10-28 78 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中清楚地記錄下來,並且一旦您有元信息就位,您將擁有非常大的靈活性以您想要的任意組合運行測試。