When I run the tests via a testNG xml file and there is an exception within the @BeforeClass method of one of the Test classes, then all subsequent Test classes are skipped by TestNG.
When I change the annotation in the TestBase class to @BeforeSuite for example, then all tests are run, even if there is an exception in on of the @BeforeClass methods.
When you run the xml file, complete RunAllTestClasses02 class is 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 with a @BeforeClass method:
public abstract class RunAllTestClassesBase {
@BeforeClass
public void beforeClass() {
// do something that all Test classes will need
}
}
Test class that throws Exception within @BeforeClass method:
public class RunAllTestClasses01 extends RunAllTestClassesBase {
@BeforeClass
public void beforeClass() {
Assert.assertTrue(false);
}
@Test
public void Test01() {
Assert.assertTrue(true);
}
}
Use the parameter enabled=false at @Test. By default, this parameter is set as True. Use throw new SkipException(String message) to skip a test. Conditional Skip − User can have a condition check.
We can Skip complete test without executing it or we can Skip a test when a specific condition is not satisfied. In TestNG, @Test(enabled=false) annotation is used to skip a test case if it is not ready to test.
Ignore means do not run it at all, and skip with the combinations of Listeners can be use for listening dependent methods and/or test. So let assume you have dependency between two tests and /or methods, test 2 can be performed only if test 1 pass. Skip will hapen for test 2 if test 1 fails.
This was a bug in Testng. solved in 6.9.5. Please upgrade.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With