package test.name;
import org.testng.Assert;
import org.testng.ITest;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
// From http://stackoverflow.com/q/33404335/4234729
public class ITestSample implements ITest {
public ThreadLocal<String> testName = new ThreadLocal<>();
@DataProvider(name = "dp", parallel = true)
public Object[][] getTests() {
return new Object[][]{new Object[]{"test1"},
new Object[]{"test2"},
new Object[]{"test3"},
new Object[]{"test4"},
new Object[]{"test5"}};
}
@Test(dataProvider = "dp")
public void run(String testName) {
Assert.assertEquals(testName, this.testName.get());
}
@BeforeMethod
public void init(Object[] testArgs) {
testName.set((String) testArgs[0]);
}
@AfterMethod
public void tearDown(Object[] testArgs) {
Assert.assertEquals((String) testArgs[0], this.testName.get());
}
@Override
public String getTestName() {
return testName.get();
}
}