java - TestNG: All subsequent Test classes are skipped when @BeforeClass method fails? -


my setup:

  • a testbase class containing @beforeclass method
  • several test classes extending testbase class , containing @beforeclass method
  • testng 6.8.8

why setup?:

  • i need @beforeclass in testbase class provide setup testclasses need , don't want repeat in every test class. example thread-id-dependent login credentials.
  • testbase class instantiates selenium webdriver
  • i need @beforeclass in test classes initialize @test methods need use needs (or must) built/invoked once tests. includes calls said webdriver instance (that's why "normal" constructor doesn't work here)

here's happens:

when run tests via testng xml file , there exception within @beforeclass method of 1 of test classes, all subsequent test classes skipped testng.

why happen? how prevent it?

when change annotation in testbase class @beforesuite example, all tests run, if there exception in on of @beforeclass methods.

example:

when run xml file, complete runalltestclasses02 class skipped.

testng xml file:

<?xml version="1.0" encoding="utf-8"?>  <suite name = "miscsuite">     <test name = "misctest">         <classes >             <class name="drkthng.misc.runalltestclasses01" />             <class name="drkthng.misc.runalltestclasses02" />         </classes>     </test> </suite> 

testbase class @beforeclass method:

public abstract class runalltestclassesbase {      @beforeclass     public void beforeclass() {         // test classes need     } } 

test class throws exception within @beforeclass method:

public class runalltestclasses01 extends runalltestclassesbase {      @beforeclass     public void beforeclass() {         assert.asserttrue(false);     }      @test     public void test01() {         assert.asserttrue(true);     } } 

this bug in testng. solved in 6.9.5. please upgrade.


Comments