2015-03-24 91 views
2

我正在使用Maven對網站運行TestNG集成測試。目前,我可以使用這個命令來運行特定的測試類:如何告訴Maven和TestNG運行特定的測試類或suite.xml文件?

mvn -Dit.test="MyTestClassname" verify 

我也想能夠指定一個TestNG的一套XML文件與具體參數一起運行一堆類。

我可以設置故障安全插件在我的POM接受suiteXmlFiles參數,像這樣:

<configuration> 
         <threadCount>1</threadCount> 
         <suiteXmlFiles> 
          <suiteXmlFile>${basedir}/src/test/resources/suites/${suiteFile}</suiteXmlFile> 
         </suiteXmlFiles> 
         <systemPropertyVariables> 
          <browser>${browser}</browser> 
          <environment>${environment}</environment> 
          <debugMode>${debugMode}</debugMode> 
          <caseId>${caseId}</caseId> 
         </systemPropertyVariables> 

</configuration> 

,讓我發出以下命令:

mvn -DsuiteFile="MyTestSuite.xml" 

但現在我不能使用-Dit.test =「MyTestClassname」選項,因爲Maven正在嘗試傳遞一個空值作爲套件名稱。

有沒有辦法解決這個問題?同樣,我想要麼:

  • 指定一個單一的測試類(在命令行一串參數)
  • 指定包含一串測試類和不同參數的TestNG的XML文件。
+0

爲什麼你需要使用套件文件?爲什麼不遵循maven命名約定,讓maven運行所有類。 – khmarbaise 2015-03-25 07:54:19

+0

我想使用套件文件的原因是做類似這樣的事情:只運行參數爲{A,B,C},{D,E,F},{G,H,I}的類A,B和C }而不執行一堆不同的maven命令。我可以用TestNG的團隊支持和不同的Maven目標來做到這一點。 – thekevinmonster 2015-03-25 13:33:54

+0

爲什麼不在測試中定義參數,一切都符合約定。 – khmarbaise 2015-03-25 14:23:16

回答

2

我正在使用maven-surefire-plugin。它讓我運行suitefile和一個類。 這是我的保命插件

<plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.17</version> 
       <configuration> 
        <suiteXmlFiles> 
         <suiteXmlFile>${suiteXmlFile}</suiteXmlFile> 
        </suiteXmlFiles> 
        <skipTests>${skipTests}</skipTests> 
        <testFailureIgnore>true</testFailureIgnore> 
       </configuration> 
      </plugin> 

要suitefile運行,我用

mvn test -DsuiteXmlFile=<suitefile> 

並運行一個類文件,我用

mvn test -Dtest=<qualified path of the test class> 
0

上述方法並沒有爲我工作。如果當你通過${suiteXmlFile}或其他問題,因爲我是有正也越來越對你的pom.xml的錯誤:

<suiteXmlFiles> 
    <suiteXmlFile>*ERROR*${suiteXmlFile}*ERROR*</suiteXmlFile> 
    </suiteXmlFiles> 

這裏是一個更好的解決方案,在命令,cd到你的POM中的位置。

MVN測試-Dsurefire.suiteXmlFiles = yourfileName(WithFullPathIfNotInRootDirectory).XML

:xml文件thenn命令行上的運行
相關問題