2017-08-10 3 views
0
私の現在のbuild.gradleで

、私はコマンドラインからターミナルからカンマ区切り(group1、group2)のTestNGグループを渡すには?

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

を特定のグループを実行するために、ターゲットの下に使用しています今私は、カンマで複数のグループを渡したいが、グループ2をgradlewクリーンなテスト-Dgroupsの= 'GROUP1を分離しました「

に任意のヘルプ

答えて

1

TestNGのスイートxmlファイルでこれを管理する代わりに、ファイルレベルのビルドのGradleでこれを管理しようとしていないしてくださいなぜ?

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 **)で動的に渡します。私たちはtest scripts/testng.xmlに記載されたグループを使用していません。 – nurav

+0

@nurav - 私の回答で言及したxmlにはグループセクションがありません。 beanshellメソッドセレクタを使用して、JVM引数を介して渡したグループに基づいて、グループを動的に決定します。ですから、 'test scripts/testng.xml'で言及されている' use group 'の意味を理解していません。 Btw ..現在のgradle設定でJVM引数を使用して複数のグループを渡すときに直面する問題は何ですか?詳しく教える? –

関連する問題