简体   繁体   中英

gradle test runs my test class, but not a custom test task

This is my test class:

public class RoutingResponseRegressionOneByOne {


    @BeforeClass
    public static void oneTimeSetUp() {
        routingClient = injector.getInstance(IRoutingClient.class);
        System.out.println("in RoutingResponseRegressionOneByOne:: oneTimeSetUp");
    }

I added a task to my build.gradle

task testRegression(type: Test) {
    systemProperties['test.single'] = '\'RoutingResponseRegressionOneByOne\''
    //systemProperty 'test.single', System.getProperty('test.single', '\'RoutingResponseRegressionOneByOne\'')
}

When I run "test" from the intellij this is the output

however when I "testRegression" from the intellij this is the output:

what should I fix in order for "testRegression" to run only this test class ?

You can pass an argument to your task with P and use the TestFilter .

In this link you will find a complete example for the filter usage. Below I attached a code of a custom automationTest task that runs tests from a specific folder.

task automationTest(type: Test) {
    //search for an argument called 'single'. if exists, use it as a test filter
    if (project.hasProperty('single')) {
        filter {
            includeTestsMatching "*${project.property('single')}*"
        }
    }
    useTestNG()

    description = "Runs Automation Tests"
    testClassesDir = file("$buildDir/classes/main/automation")
    classpath += sourceSets.main.runtimeClasspath
}

run it as: gradle -Psingle=MyTest automationTest

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM