Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cucumber Reportr

CI Maven Central License codecov

Frontend : Quality Gate Status

Plugin : Quality Gate Status

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.

Screenshot Screenshot

✨ Features

  • 🎨 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

🚀 Quick Start

Maven Dependency

Add the following dependency to your pom.xml:

<dependency>
    <groupId>io.github.nil-malh</groupId>
    <artifactId>cucumber-reportr</artifactId>
    <version>1.3.0</version>
</dependency>

📖 Usage

As a Cucumber Plugin

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 {
}

🏗️ Building from Source

Prerequisites

  • Java 17 or higher
  • Maven 3.6 or higher
  • Node.js 18 or higher (for frontend build)

Build Steps

# 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

Development

# 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

📊 Report Features

Global Analytics

  • 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

Interactive Navigation

  • 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

Detailed Test Results

  • 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

🎨 Customization

Themes

The reporter supports both light and dark themes, automatically detecting system preferences.

Configuration

Customize the report generation through configuration options:

WIP

🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Setup

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes
  4. Run tests: mvn test
  5. Build the project: mvn clean package
  6. Commit your changes: git commit -m 'Add amazing feature'
  7. Push to the branch: git push origin feature/amazing-feature
  8. Open a Pull Request

Code Style

  • Java: Follow Google Java Style Guide
  • JavaScript/React: ESLint configuration provided
  • Commit messages: Follow Conventional Commits

🐛 Issues and Support

📄 License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

🙏 Acknowledgments

📈 Project Stats

  • Language: Java 17+, JavaScript (React)
  • Build Tool: Maven
  • Frontend: React 19, Vite, Tailwind CSS
  • Testing: JUnit, Maven Surefire
  • CI/CD: GitHub Actions

About

A Cucumber Java plugin to generate a pretty HTML report

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages