I tried to run the test cases in a specific order, but no luck. As I can see, methods annotated with @AfterClass are run after methods from another test:
Configuring TestNG with: org.apache.maven.surefire.testng.conf.TestNGMapConfigurator@558e e9d6 RUN class com.example.testng.ITCaseOne.beforeClass() RUN class com.example.testng.ITCaseOne.someCase() RUN class com.example.testng.ITCaseTwo.beforeClass() RUN class com.example.testng.ITCaseTwo.someCase() RUN class com.example.testng.ITCaseOne.anotherCase() RUN class com.example.testng.ITCaseOne.afterClass() RUN class com.example.testng.ITCaseTwo.anotherCase() RUN class com.example.testng.ITCaseTwo.afterClass() Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.25 sec
And it fails because all @Test of ITCaseTwo should only be called after ITCaseOne.afterClass() (because I use Selenium, and tests from one case should check the corresponding page).
My simple classes are:
public class ITCaseOne { @BeforeClass public void beforeClass() { System.out.printf("RUN %s.beforeClass()\n", getClass()); } @AfterClass(alwaysRun = true) public void afterClass() { System.out.printf("RUN %s.afterClass()\n", getClass()); } @Test(groups = "std-one") public void someCase() { System.out.printf("RUN %s.someCase()\n", getClass()); } @Test(groups = "logic-one", dependsOnGroups = "std-one") public void anotherCase() { System.out.printf("RUN %s.anotherCase()\n", getClass()); } }
and
public class ITCaseTwo { @BeforeClass public void beforeClass() { System.out.printf("RUN %s.beforeClass()\n", getClass()); } @AfterClass(alwaysRun = true) public void afterClass() { System.out.printf("RUN %s.afterClass()\n", getClass()); } @Test(groups = "std-two") public void someCase() { System.out.printf("RUN %s.someCase()\n", getClass()); } @Test(groups = "logic-two", dependsOnGroups = "std-two") public void anotherCase() { System.out.printf("RUN %s.anotherCase()\n", getClass()); } }
If this is important, I use maven-failsafe-plugin 2.12 and testng 6.4
(By the way, I am also trying to use a package file with preserve-order="true" , but it does not work for me.)
Thanks in advance!