A modern, interactive Cucumber reporter that generates beautiful HTML reports from Cucumber JSON output. Built with Java and React, it provides a VSCode-style interface for exploring test results with advanced filtering, analytics, and detailed step-by-step execution views.
- π¨ Modern UI: VSCode-inspired interface with dark/light theme support
- π Interactive Analytics: Global statistics, charts, and trend analysis
- π Advanced Filtering: Filter by status, tags, scenarios, and features
- π± Responsive Design: Works seamlessly on desktop and mobile devices
- π³ Hierarchical View: Organized folder tree structure for easy navigation
- π Detailed Reports: Step-by-step execution details with screenshots and logs
- π·οΈ Tag Support: Full Cucumber tag filtering and organization
- π Deep Linking: Direct links to specific scenarios and features
- π Fast Performance: Optimized for large test suites
- π― Zero Configuration: Works out of the box with standard Cucumber JSON
Add the following dependency to your pom.xml
:
<dependency>
<groupId>io.github.nil-malh</groupId>
<artifactId>cucumber-reportr</artifactId>
<version>1.1.0</version>
</dependency>
Configure Cucumber to use the reporter plugin:
@CucumberOptions(
features = "src/test/resources/features",
glue = "com.example.stepdefs",
plugin = {
"json:target/cucumber-reports/cucumber.json",
"io.github.nil_malh.cucumber.reportr.Core:target/cucumber-reports"
}
)
public class RunCucumberTest {
}
- Java 17 or higher
- Maven 3.6 or higher
- Node.js 18 or higher (for frontend build)
# Clone the repository
git clone https://github.com/nil-malh/cucumber-reportr.git
cd cucumber-cucumber-reportr
# Build the project (includes frontend)
mvn clean package
# For development (skip frontend build)
mvn clean package -Pdev
# Build without tests
mvn clean package -DskipTests
# Start frontend development server
cd front
npm install
npm run dev
# Build frontend only
npm run build
# Build standalone HTML (single file)
npm run build:standalone
- Test Execution Summary: Total scenarios, pass/fail rates, execution time
- Trend Analysis: Historical test performance tracking
- Feature Coverage: Detailed breakdown by feature files
- Tag Analytics: Test distribution across different tags
- Folder Tree: Hierarchical view of feature files and scenarios
- Search & Filter: Real-time filtering by status, tags, or text
- Tabbed Interface: Multiple views for different aspects of results
- Breadcrumb Navigation: Easy navigation through nested structures
- Step-by-Step Execution: Detailed view of each test step
- Error Details: Full stack traces and error messages
- Screenshots: Embedded screenshots for visual validation
- Execution Timing: Performance metrics for each step
- Data Tables: Formatted display of test data
The reporter supports both light and dark themes, automatically detecting system preferences.
Customize the report generation through configuration options:
WIP
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes
- Run tests:
mvn test
- Build the project:
mvn clean package
- Commit your changes:
git commit -m 'Add amazing feature'
- Push to the branch:
git push origin feature/amazing-feature
- Open a Pull Request
- Java: Follow Google Java Style Guide
- JavaScript/React: ESLint configuration provided
- Commit messages: Follow Conventional Commits
- Bug Reports: GitHub Issues
- Feature Requests: GitHub Discussions
- Documentation: Wiki
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- Built with Cucumber - BDD testing framework
- UI powered by React and Tailwind CSS
- Charts using Recharts
- Icons from Lucide React
- Language: Java 17+, JavaScript (React)
- Build Tool: Maven
- Frontend: React 19, Vite, Tailwind CSS
- Testing: JUnit, Maven Surefire
- CI/CD: GitHub Actions