【问题标题】:How to restrict tests by the group, Gradle using?如何限制组测试,Gradle 使用?
【发布时间】:2022-02-02 13:21:01
【问题描述】:

我有类似结构的测试项目:

@Test(groups={"group1"})
MyTestClass1{
    @Test
    public void test1(){}
}

@Test(groups={"group2"})
MyTestClass2{
    @Test
    public void test2(){}
}

@Test(groups={"group1"}) //the same group as for the MyTestClass1
MyTestClass3{
    @Test
    public void test3(){}
}

build.gradle:

...
    task myTask1(type: Test) {
        useTestNG() {
            suites './src/test/resources/testng/myXML.xml'
        }
    }
...

XML:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Some smoke test" thread-count="3" parallel="tests">
    <test name="My Tests 1">
        <classes>
            <class name="tests.mytest.MyTestClass1"/>
        </classes>
    </test>

    <test name="My Tests 2">
        <classes>
            <class name="tests.mytest.MyTestClass2"/>
        </classes>
    </test>


    <test name="My Tests 3">
        <classes>
            <class name="tests.mytest.MyTestClass3"/>
        </classes>
    </test>
</suite>

我需要执行来自myTask1 的所有测试,包括group1 组。 如何通过groups参数执行gradle的测试?

我的尝试(不起作用):

gradlew myTask1 -Dgroups=group1

【问题讨论】:

    标签: java gradle testng


    【解决方案1】:

    使用includeGroups:

    task myTask1(type: Test) {
        useTestNG {
            suites './src/test/resources/testng/myXML.xml'
            includeGroups 'group1', 'group2'
        }
    }
    

    可在 Javadoc 中找到完整的选项列表:https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/testing/testng/TestNGOptions.html

    【讨论】:

    • 谢谢,但我需要从命令行管理组 - 在不同的情况下,我需要为同一任务使用不同的组
    • 另外,build.gradle重现编译错误,当我添加includeGroups时。
    • 错误:Gradle DSL method not found: 'includeGroups​()'。可能是旧的 Gradle 版本?
    猜你喜欢
    • 2018-03-21
    • 2014-01-09
    • 2015-07-24
    • 1970-01-01
    • 2014-10-13
    • 2015-04-07
    • 2013-12-12
    • 2014-08-23
    • 1970-01-01
    相关资源
    最近更新 更多