如何通过终端传递TestNG组逗号分隔(group1,group2)?

时间:2017-08-10 02:24:50

标签: gradle testng gradlew

在我当前的build.gradle中,我使用低于目标来通过命令行运行特定组

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

现在我想用逗号分隔 gradlew clean test -Dgroups =' group1,group2'

传递多个组

任何帮助,请

1 个答案:

答案 0 :(得分:1)

为什么不在TestNG Suite 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 -->

有关详细信息,请参阅以下内容:

相关问题