Quickly Rerun Failed Cucumber Tests with JUnit, Maven & Selenium
Quickly Rerun Failed Cucumber Tests with JUnit, Maven & Selenium

Unable to Rerun Failed Cucumber Tests in Selenium with JUnit and Maven Due to Missing failedrerun.txt Features

Fix "failedrerun.txt not found" in Cucumber tests using JUnit, Maven & Selenium—rerun failed tests easily and save time.7 min


Rerunning only failed tests in Cucumber automation can save enormous time, especially when dealing with large test suites. But what if your attempts at rerunning failures using JUnit, Selenium, and Maven get thwarted due to the dreaded “failedrerun.txt not found” warning?

This scenario is common and can be frustrating if you’ve ensured your test setup seems correct. Let’s unravel this issue step-by-step, understand what’s causing this problem, and resolve it clearly.

What Exactly is FailedRerun Feature and Why Is It Important?

When we run automation tests using Cucumber integrated with Selenium and JUnit, the testing framework can automatically generate a file named failedrerun.txt. But what’s stored inside this file, and why does it matter?

Essentially, failedrerun.txt holds information about failed scenarios after a test execution. It specifically lists scenarios or features that encountered failures or issues, making it easy to rerun only failed tests without executing the entire test suite again.

If you’re dealing with extensive tests covering hundreds of scenarios, manually identifying and retesting failed cases is tedious. Thanks to this handy file, you improve productivity and debugging efficiency immensely.

Alongside this text file, automation developers usually create a supporting class called FailedRun.java or similar. The primary responsibility of this class is setting the path to rerun only failed scenarios or suites as captured by the failedrerun.txt file.

Suppose something goes wrong—like the file, for some reason, isn’t found or updated during execution—your setup will generate frustrating messages like “No features found”, ultimately blocking your rerun strategy entirely.

Properly Setting Up Your Environment to Avoid Issues

Let’s clarify and walk through essential prerequisites to set yourself up for success. Using Selenium WebDriver, Maven, and Cucumber Java requires a well-organized Maven project with proper dependencies.

To prevent missing or misconfigured dependencies, your Maven project’s pom.xml file should have all critical dependencies clearly declared. Below is a quick checklist of dependencies you must include:

  • Selenium Java (Browser interaction)
  • WebDriver Manager (Automatically manages browser drivers)
  • Cucumber Dependencies (Core, JUnit, Java, Reporting)
  • JUnit Testing Framework (JUnit Jupiter or classic JUnit)
  • Logging Libraries (like Log4j or SLF4J)
  • Extent Reports (for rich HTML test reporting)
  • Apache POI (data-driven tests from Excel)
  • Java XML Bind (JAXB) (for XML parsing)
  • Lombok (to simplify Java code)

Make sure your pom.xml dependencies section clearly displays versions to facilitate smooth execution. Here’s an example of a properly structured dependency config snippet:


<dependencies>
  <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.14.1</version>
  </dependency>

  <dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>5.7.0</version>
  </dependency>

  <dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-java</artifactId>
    <version>7.13.0</version>
  </dependency>

  <dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>7.13.0</version>
  </dependency>
</dependencies>

You can refer to official documentation like the Cucumber Java installation guide or Maven Repository for correct dependency versions and setup details.

Correctly Running Cucumber Tests with Maven and JUnit

To run your Cucumber tests using Maven while targeting only failed scenarios listed in failedrerun.txt, you’ll typically execute Maven commands like these examples below:


mvn test -Dcucumber.features=target\failedrerun.txt
mvn test -Dcucumber.features="target\failedrerun.txt"
mvn test -Dcucumber.options="@target/failedrerun.txt"

These commands direct the test execution to focus solely on scenarios listed in the targeted file. However, users encountering issues often see warnings like “No features found” or “unable to locate failedrerun.txt”.

This happens mainly because Cucumber can’t find or read the text file properly due to incorrect paths, naming, or content within the FailedRun configuration class.

Troubleshooting the Problem: Fixing the “No Features Found” Issue

When faced with the warning message “No features found”, it’s usually a matter of diagnosing these points clearly:

  1. Check the Exact Path to failedrerun.txt: Make sure the file actually exists in the correct location under “target” folder or similar output directory generated by JUnit/Cucumber. Paths are often OS-sensitive, so ensure slashes are consistent with your system (use forward slash on Linux/Mac, backward slash on Windows or escape them properly).
  2. Ensure Correct Syntax in FailedRun.java:
    Your test runner class (e.g., FailedRun.java) must correctly point or update the path in annotations like @CucumberOptions. A simple setup might look like:

    
    @RunWith(Cucumber.class)
    @CucumberOptions(
        features = "@target/failedrerun.txt",
        glue={"stepdefinitions"},
        plugin={"pretty", "html:target/cucumber-reports.html"}
    )
    public class FailedRun {
    }
    

    Ensure “@target/failedrerun.txt” matches the exact path to the generated failed features file.

  3. Debug Carefully and Stepwise:
    Try creating failing tests purposely, running them once and observing whether failedrerun.txt is filled correctly. If not, the issue lies earlier in test execution or configuration setup, and debugging steps are required there. Monitoring the JUnit/Cucumber console logs closely also helps identify hidden exceptions that prevent file generation.

Often, referencing community forums like Stack Overflow helps provide additional insights—you’re never alone in encountering these common configuration issues.

Recap and Ensuring Smooth Execution

In quick summary, the frustration behind failing to rerun your failed automated tests often boils down to small configuration oversights, incorrect Java annotations, OS-path differences, or missing dependencies.

By carefully reviewing and debugging your pom.xml dependencies, ensuring accurate paths in your runner classes, and being meticulous with your Maven commands, the issue becomes easily manageable.

Automation testing isn’t just about writing reliable code; it’s also about having an effective debugging strategy. A proven resolution for missing failedrerun.txt problems means you spend less time chasing config bugs and more time ensuring your app meets quality standards.

Have you encountered interesting issues with Selenium, Cucumber, or Java setup and want to share your own fixes or experiences? Leave a comment below or explore other automation insights in our curated JavaScript Automation category.


Like it? Share with your friends!

Shivateja Keerthi
Hey there! I'm Shivateja Keerthi, a full-stack developer who loves diving deep into code, fixing tricky bugs, and figuring out why things break. I mainly work with JavaScript and Python, and I enjoy sharing everything I learn - especially about debugging, troubleshooting errors, and making development smoother. If you've ever struggled with weird bugs or just want to get better at coding, you're in the right place. Through my blog, I share tips, solutions, and insights to help you code smarter and debug faster. Let’s make coding less frustrating and more fun! My LinkedIn Follow Me on X

0 Comments

Your email address will not be published. Required fields are marked *