2017-08-10 78 views
0

在我目前的build.gradle,我使用低於目標通過命令行來運行特定的組如何通過終端通過TestNG組逗號分隔(group1,group2)?

test { 
     jvmArgs "-DisParallel=true" 
     useTestNG(){ 
      suites testngxml 
      includeGroups System.properties['groups'] 
     } 
    } 

現在我想傳遞多個組,逗號分隔gradlew乾淨的測試-Dgroups ='組1,組2 「

任何幫助,請

回答

1

爲什麼不TestNG的套件XML文件,而不是試圖管理這一在搖籃建立文件級管理呢?

您可以在TestNG套件xml文件中使用BeanShell,該文件能夠將組名稱讀爲JVM參數,然後解析並相應地運行測試?

下面是一個接受組名作爲JVM參數的例子,然後動態地讓測試運行,當且僅當它們屬於傳遞的組名。您可以通過添加拆分邏輯來增強此功能,然後利用相同的邏輯邏輯containsKey()

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="Suite" parallel="false"> 
    <test name="Test"> 
     <method-selectors> 
      <method-selector> 
       <script language="beanshell"> 
       <![CDATA[whatGroup = System.getProperty("groups"); 
       groups.containsKey(whatGroup); 
       ]]> 
       </script> 
      </method-selector> 
     </method-selectors> 
     <classes> 
      <class name="organized.chaos.GroupsPlayGround" /> 
     </classes> 
    </test> <!-- Test --> 
</suite> <!-- Suite --> 

欲瞭解更多信息,你可以參考以下幾點:

+0

我們保存我們的DB數據並設置羣組。我們通過命令行動態傳遞組(** gradlew test -Dgroups = group **)。我們沒有使用測試腳本/ testng.xml中提到的組 – nurav

+0

@nurav - 我在響應中提到的xml沒有組部分。它使用beanshell方法選擇器根據通過JVM參數傳入的組動態決定要包含的組。所以我不太明白'測試腳本/ testng.xml中提到的使用組'的含義。 Btw ..當你在當前的gradle設置中通過JVM參數傳入多個組時,你面臨什麼問題。謹慎闡述? –