diff --git a/testing-modules/testng-2/src/test/java/com/baeldung/testng/DataDrivenNameTest.java b/testing-modules/testng-2/src/test/java/com/baeldung/testng/DataDrivenNameTest.java new file mode 100644 index 000000000000..eac868a02902 --- /dev/null +++ b/testing-modules/testng-2/src/test/java/com/baeldung/testng/DataDrivenNameTest.java @@ -0,0 +1,37 @@ +package com.baeldung.testng; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; + +import java.lang.reflect.Method; +import java.util.Arrays; + +import static org.testng.Assert.assertEquals; + +public class DataDrivenNameTest { + + private static final Logger logger = LoggerFactory.getLogger(DataDrivenNameTest.class); + + private String testName; + + @BeforeMethod + public void capture(Method method, Object[] params) { + String testName = method.getName() + Arrays.toString(params); + this.testName = testName; + logger.info("Executing test {}", testName); + } + + @Test(dataProvider = "numbers") + public void givenInputWhenSquaringThenShouldBeExpected(int input, int expected) { + logger.info("Executing scenario from {}", testName); + assertEquals(Math.pow(input, 2), expected); + } + + @DataProvider + public Object[][] numbers() { + return new Object[][] { { 2, 4 }, { 3, 9 } }; + } +} diff --git a/testing-modules/testng-2/src/test/java/com/baeldung/testng/FactoryNameTest.java b/testing-modules/testng-2/src/test/java/com/baeldung/testng/FactoryNameTest.java new file mode 100644 index 000000000000..5e4f32dc8a19 --- /dev/null +++ b/testing-modules/testng-2/src/test/java/com/baeldung/testng/FactoryNameTest.java @@ -0,0 +1,40 @@ +package com.baeldung.testng; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.testng.Assert; +import org.testng.ITestResult; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Factory; +import org.testng.annotations.Test; + +import java.lang.reflect.Method; +import java.util.List; + +public class FactoryNameTest { + + private static final Logger logger = LoggerFactory.getLogger(FactoryNameTest.class); + private final String instanceLabel; + + public FactoryNameTest(String label) { + this.instanceLabel = label; + } + + @Factory + public static Object[] build() { + return new Object[] { new FactoryNameTest("fast-path"), new FactoryNameTest("slow-path") }; + } + + @BeforeMethod + public void capture(Method method, ITestResult result) { + String fullName = method.getName() + "[" + instanceLabel + "]"; + result.setAttribute("displayName", fullName); + logger.info("capturing {}", fullName); + } + + @Test + public void givenTestNameSetupWhenTestNameIsRequestedThenShouldReturnTestName() { + logger.info("Executing scenario {}", instanceLabel); + Assert.assertListContainsObject(List.of("fast-path", "slow-path"), instanceLabel, "instance label is not"); + } +} diff --git a/testing-modules/testng-2/src/test/java/com/baeldung/testng/NameByReflectionTest.java b/testing-modules/testng-2/src/test/java/com/baeldung/testng/NameByReflectionTest.java new file mode 100644 index 000000000000..cac99ffb72cf --- /dev/null +++ b/testing-modules/testng-2/src/test/java/com/baeldung/testng/NameByReflectionTest.java @@ -0,0 +1,28 @@ +package com.baeldung.testng; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.testng.Assert; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import java.lang.reflect.Method; + +public class NameByReflectionTest { + + private static final Logger logger = LoggerFactory.getLogger(NameByReflectionTest.class); + private String testName; + + @BeforeMethod + public void capture(Method method) { + String testName = method.getName(); + this.testName = testName; + logger.info("Method name: {}", testName); + } + + @Test + public void givenTestNameSetupWhenTestNameIsRequestedThenShouldReturnTestName() { + logger.info("Executing scenario {}", testName); + Assert.assertEquals(testName, "givenTestNameSetupWhenTestNameIsRequestedThenShouldReturnTestName"); + } +} diff --git a/testing-modules/testng-2/src/test/java/com/baeldung/testng/NameByResultTest.java b/testing-modules/testng-2/src/test/java/com/baeldung/testng/NameByResultTest.java new file mode 100644 index 000000000000..a3f9e4a69ba2 --- /dev/null +++ b/testing-modules/testng-2/src/test/java/com/baeldung/testng/NameByResultTest.java @@ -0,0 +1,28 @@ +package com.baeldung.testng; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.testng.Assert; +import org.testng.ITestResult; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +public class NameByResultTest { + + private static final Logger logger = LoggerFactory.getLogger(NameByResultTest.class); + private String testName; + + @BeforeMethod + public void capture(ITestResult result) { + String testName = result.getMethod().getMethodName(); + long startTime = result.getStartMillis(); + this.testName = testName; + logger.info("Starting test {} at {}", testName, startTime); + } + + @Test + public void givenTestNameSetupWhenTestNameIsRequestedThenShouldReturnTestName() { + logger.info("Executing scenario {}", testName); + Assert.assertEquals(testName, "givenTestNameSetupWhenTestNameIsRequestedThenShouldReturnTestName"); + } +} diff --git a/testing-modules/testng-2/src/test/java/com/baeldung/testng/NameByXmlSuiteTest.java b/testing-modules/testng-2/src/test/java/com/baeldung/testng/NameByXmlSuiteTest.java new file mode 100644 index 000000000000..a6336f4bee1f --- /dev/null +++ b/testing-modules/testng-2/src/test/java/com/baeldung/testng/NameByXmlSuiteTest.java @@ -0,0 +1,27 @@ +package com.baeldung.testng; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.testng.Assert; +import org.testng.ITestContext; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +public class NameByXmlSuiteTest { + + private static final Logger logger = LoggerFactory.getLogger(NameByXmlSuiteTest.class); + + private String iTestContextSuiteName; + + @BeforeTest + public void xmlName(ITestContext ctx) { + iTestContextSuiteName = ctx.getName(); + logger.info("Starting test suite: {}", ctx.getName()); + } + + @Test + public void givenTestContextSetupWhenRequestingSuiteNameThenShouldReturnSuiteName() { + logger.info("Executing scenario from {}", iTestContextSuiteName); + Assert.assertEquals(iTestContextSuiteName, "tutorials"); + } +}