TestNG default reports in Selenium Java - Build an Automation Script
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.Assert; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import java.io.File; public class TestNGDefaultReportTest { WebDriver driver; @BeforeClass public void setup() { // Set path to chromedriver executable if needed // System.setProperty("webdriver.chrome.driver", "path/to/chromedriver"); driver = new ChromeDriver(); } @Test public void openGoogleAndCheckTitle() { driver.get("https://www.google.com"); String title = driver.getTitle(); Assert.assertTrue(title.contains("Google"), "Title should contain 'Google'"); } @AfterClass public void teardown() { if (driver != null) { driver.quit(); } } @Test public void verifyTestNGReportExists() { // This test verifies that TestNG default report is generated after tests run File reportFolder = new File("test-output"); Assert.assertTrue(reportFolder.exists() && reportFolder.isDirectory(), "TestNG report folder 'test-output' should exist"); File indexFile = new File(reportFolder, "index.html"); Assert.assertTrue(indexFile.exists() && indexFile.isFile(), "TestNG report 'index.html' should exist inside 'test-output'"); } }
The code defines a TestNG test class with Selenium WebDriver.
setup() method initializes ChromeDriver before tests.
openGoogleAndCheckTitle() navigates to Google and asserts the page title contains 'Google'.
teardown() quits the browser after tests.
verifyTestNGReportExists() checks if the 'test-output' folder and 'index.html' report file exist after test execution.
This confirms that TestNG default reports are generated automatically after running tests.
Assertions use TestNG's Assert class to validate conditions.
Running this test class via TestNG will produce the default HTML report in 'test-output' folder.
Now add data-driven testing with 3 different URLs and verify their page titles
Practice
Solution
Step 1: Understand what TestNG default reports do
TestNG default reports automatically display the results of tests after execution without extra coding.Step 2: Compare options with this function
Only To automatically show test results after running tests matches this description; others describe unrelated tasks.Final Answer:
To automatically show test results after running tests -> Option BQuick Check:
TestNG default reports = automatic test result display [OK]
- Thinking reports require extra code
- Confusing reports with code compilation
- Assuming reports manage databases
Solution
Step 1: Identify the default report file location
TestNG generates reports inside the 'test-output' folder, with 'index.html' as the main report file.Step 2: Check other options for correctness
Other files are unrelated: source code, build config, or logs.Final Answer:
test-output/index.html -> Option AQuick Check:
Default report file = test-output/index.html [OK]
- Confusing source code files with report files
- Expecting reports in pom.xml or logs
- Not checking the test-output directory
Solution
Step 1: Analyze the test results given
There are two tests that passed and one test that failed.Step 2: Match the counts to the report format
The report shows counts as Passed: 2, Failed: 1, Skipped: 0.Final Answer:
Passed: 2, Failed: 1, Skipped: 0 -> Option AQuick Check:
Test counts in report = Passed 2, Failed 1 [OK]
- Mixing passed and failed counts
- Assuming skipped tests when none exist
- Misreading the test result numbers
Solution
Step 1: Understand why no tests run
If test methods lack the @Test annotation, TestNG will not recognize or run them.Step 2: Evaluate other options
Corrupted jar or Java version issues usually cause errors, not silent no tests. Deleting report folder does not affect test execution.Final Answer:
Test methods are missing the @Test annotation -> Option DQuick Check:
No @Test annotation = no tests run [OK]
- Assuming report folder deletion stops tests
- Blaming Java version without error messages
- Ignoring missing @Test annotations
Solution
Step 1: Understand default report customization
TestNG default reports do not support screenshots by default; customization requires listeners like ITestListener.Step 2: Evaluate options for adding screenshots
Adding listeners to capture screenshots on failure and embed them is the correct approach. Manual editing or renaming folders won't add screenshots. Disabling reports removes them entirely.Final Answer:
By adding listeners and embedding screenshots in the report via ITestListener -> Option CQuick Check:
Use ITestListener to add screenshots [OK]
- Trying to edit report files manually
- Renaming folders expecting new features
- Disabling reports instead of customizing
Ready to prove it?
Pass the test and this pattern moves unknown
