The @AfterXXX configuration methods would be called irrespective of whether the test methods run properly or not.
import org.testng.Assert;
import org.testng.Reporter;
import org.testng.annotations.AfterTest;
import org.testng.annotations.Test;
public class ConfigurationSample {
@Test
public void testMethod() {
Assert.assertTrue(false);
}
@AfterTest
public void afterTest() {
Reporter.log("afterTest() was called", true);
}
}
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.test.testng.ConfigurationSample
Configuring TestNG with: TestNG652Configurator
afterTest() was called
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.254 sec <<< FAILURE! - in com.test.testng.ConfigurationSample
testMethod(com.test.testng.ConfigurationSample) Time elapsed: 0.011 sec <<< FAILURE!
java.lang.AssertionError: expected [true] but found [false]
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.failNotEquals(Assert.java:494)
at org.testng.Assert.assertTrue(Assert.java:42)
at org.testng.Assert.assertTrue(Assert.java:52)
at com.test.testng.ConfigurationSample.testMethod(ConfigurationSample.java:11)