2017-07-27 227 views
0

您能否告訴我我是否可以動態更改IncludeExclude的Maven Surfire插件?maven-surefire-plugin的動態包含和排除

例如:

<build> 
       <plugins> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-surefire-plugin</artifactId> 
         <version>2.18.1</version> 
         <configuration> 
          <includes> 
           <include>**/${param}Spec*.*</include> 
          </includes> 
         </configuration> 
        </plugin> 
       </plugins> 
      </build> 

我想有$param從命令行傳遞時,我們執行Maven的測試命令。

如果您有解決方案,請給出建議。我試過arglinesystemProperties

謝謝!

+0

的可能的解決方案之一是使用maven [輪廓](http://maven.apache.org/guides/introduction/introduction-to-profiles .html) –

+0

看到這一個:https://stackoverflow.com/questions/7513319/passing-command-line-arguments-from-maven-as-properties-in-pom-xml/7515282 –

+0

爲什麼你想改變那動態?沒有運行所有測試(spec *)? – khmarbaise

回答

0

我不認爲有一種方法可以傳遞動態參數,但如果排除/包含的組合有限,則可以使用下面的技巧。訣竅是使用像combo1,combo2等不同組合的配置文件。然後,您可以運行maven構建與特定配置文件&只有那些包括/排除將工作。

命令= mvn clean package -P combo1

的pom.xml

<profiles> 
    <profile> 
     <id>combo1</id> 
     <build> 
       <plugins> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-surefire-plugin</artifactId> 
         <version>2.18.1</version> 
         <configuration> 
          <includes> 
           <include>**/Combo1Spec*.*</include> 
          </includes> 
         </configuration> 
        </plugin> 
       </plugins> 
      </build> 
    </profile> 

    <profile> 
     <id>combo2</id> 
     <build> 
       <plugins> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-surefire-plugin</artifactId> 
         <version>2.18.1</version> 
         <configuration> 
          <includes> 
           <include>**/Combo2Spec*.*</include> 
          </includes> 
         </configuration> 
        </plugin> 
       </plugins> 
      </build> 
    </profile> 
</profiles> 
+0

感謝但簡介在這種情況下不適合我們,因爲實際上它取決於QA如何運行測試用例。 –