I am new to Gradle. I use Gradle 1.10 and Ubuntu 13.
I want to know if there's any command to execute only one test class, similar to 'testonly' in SBT.
I am new to Gradle. I use Gradle 1.10 and Ubuntu 13.
I want to know if there's any command to execute only one test class, similar to 'testonly' in SBT.
In case you have a multi-module project :
let us say your module structure is
and the test(testToRun) you are looking to run is in b-module, with full path : com.xyz.b.module.TestClass.testToRun
As here you are interested to run the test in b-module, so you should see the tasks available for b-module.
The above command will list all tasks in b-module with description. And in ideal case, you will have a task named test to run the unit tests in that module.
Now, you have reached the point for running all the tests in b-module, finally you can pass a parameter to the above task to run tests which matches the certain path pattern
Now, instead of this if you run
./gradlew test --tests "com.xyz.b.module.TestClass.testToRun"
It will run the test task for both module a and b, which might result in failure as there is nothing matching the above pattern in a-module.
In my case, my eclipse java compiler warnings were set too high, and eclipse was not recognizing my class as valid for execution. Updating my compiler settings fixed the problem. You can read more about it here: annotation-nonnull-cannot-be-resolved
Please note that
--tests
option may not work if you have different buildtypes/flavors
(fails withUnknown command-line option '--tests'
). In this case, it's necessary to specify the particular test task (e.g.testProdReleaseUnitTest
instead of justtest
)After much figuring out, the following worked for me:
gradle test --tests "a.b.c.MyTestFile.mySingleTest"
Run a single test called MyTest:
You should try to add asteriks (*) to the end.