Selecting specific tests to run in gradle

2019-03-25 06:43发布

问题:

I'm trying to fix our messy failing test runs, and, unfortunately, I'm very new to gradle. We currently have testng, junit, and I'd like to add some spock tests to the mix as well. I'm not quite sure how gradle determines which tests to run when I type "gradle test". How can I prevent the testng &/or junit tests from running? How can I get gradle to start running my spock tests?

回答1:

By default, the test task runs all JUnit tests it can find, which includes any Spock tests. To make it run TestNG tests instead, configure the task as follows:

test {
    useTestNG()
}

If you have both JUnit and TestNG tests, you need two test tasks, one for each test framework.

To run a subset of tests, use the -Dtest.single system property. For more information, see the corresponding section in the Gradle User Guide.



回答2:

$> gradle test -Dtest.single=YourTestClass


回答3:

You may provide using the command line:

$> gradle test --tests org.somewhere.MyTestClass

Or even

$> gradle test --tests org.somewhere.MyTestClass.my_test_case