When I run my testng tests using command line and with tests defined in a testng.xml file, they run in the order they are specified in the testng.xml
<suite name="WorkDepot Tests">
<test name="Submit work-result test">
<classes>
<class name="workdepot.test.SubmitWorkTest"/>
<class name="workdepot.test.WorkResultTest"/>
<class name="workdepot.test.SubmitWorkTest"/>
<class name="workdepot.test.WorkErrorTest"/>
<class name="workdepot.test.SubmitWorkTest"/>
<class name="workdepot.test.MultipleHasTest"/>
<class name="workdepot.test.WorkResultTest"/>
<class name="workdepot.test.CallbackTest"/>
<class name="workdepot.test.NegCallBackTest"/>
<class name="workdepot.test.NegSubmitWork"/>
<class name="workdepot.test.NegGetWork"/>
<class name="workdepot.test.NegHasWork"/>
<class name="workdepot.test.NegSubmitResult"/>
<class name="workdepot.test.NegSubmitError"/>
<class name="workdepot.test.NegReadResult"/>
<class name="workdepot.test.NegMultipleHas"/>
</classes>
</test>
</suite>
Now I want to run those using the gradle Test
task type and I use include
pattern for the same. But the order of execution is now changed (arbitrary).
task integTest(type: Test){
useTestNG()
testClassDir = file("build/classes/integTest")
include "workdepot/test/SubmitWorkTest*"
include "workdepot/test/WorkResultTest*"
include "workdepot/test/SubmitWorkTest*"
include "workdepot/test/WorkErrorTest*"
include "workdepot/test/SubmitWorkTest*"
include "workdepot/test/MultipleHasTest*"
include "workdepot/test/WorkResultTest*"
include "workdepot/test/CallbackTest*"
include "workdepot/test/NegCallBackTest*"
include "workdepot/test/NegSubmitWork*"
include "workdepot/test/NegGetWork*"
include "workdepot/test/NegHasWork*"
include "workdepot/test/NegSubmitResult*"
include "workdepot/test/NegSubmitError*"
include "workdepot/test/NegReadResult*"
include "workdepot/test/NegMultipleHas*"
}
How can I ensure the tests are run in the order as in the testng.xml without changing the test code (i.e., adding dependencies between tests)