The open-source ecosystem has responded to the demand for Cypress test orchestration with several powerful and mature projects. These tools are not mere clones; they offer unique features and philosophies. Here, we'll conduct an in-depth review of the leading contenders.
1. Sorry-Cypress: The Original Self-Hosted Champion
Sorry-Cypress is arguably the most well-known and direct open-source replacement for the Cypress Dashboard. It's a drop-in, self-hosted solution that aims to replicate the core functionality of its proprietary counterpart, especially parallelization and results reporting.
Key Features:
- Parallel Test Execution: Distribute your test suite across multiple CI machines to drastically reduce run times.
- GraphQL API: Provides a flexible endpoint for programmatic access to test runs and results.
- Test Recordings: Stores videos of your test runs, which are invaluable for debugging flaky or failed tests.
- Screenshots and Logs: Captures screenshots on failure and stores
cy.log()
outputs for detailed analysis.
- GitHub Integration: Links test runs back to their corresponding GitHub commits.
How It Works: Sorry-Cypress consists of three main services, typically run via Docker Compose: a Director service that orchestrates the test runs, an API service that communicates with the database (MongoDB), and a Dashboard service that provides the web interface. To use it, you simply point your Cypress configuration to your self-hosted Director URL. The project's official GitHub repository contains detailed setup instructions.
Configuration Example (cypress.config.js
):
const { defineConfig } = require('cypress');
module.exports = defineConfig({
e2e: {
// The projectId is used to group runs together
projectId: 'your-project-id',
setupNodeEvents(on, config) {
// implement node event listeners here
},
},
});
And in your package.json
, you configure the API URL:
{
"scripts": {
"cy:run:parallel": "CYPRESS_API_URL=http://localhost:1234 cypress run --parallel --record --key some_key"
}
}
Pros:
- Drop-in Replacement: The setup is designed to be as close to the official dashboard as possible, minimizing configuration changes.
- Complete Control: Being fully self-hosted, you control the data, infrastructure, and maintenance schedule.
- Cost-Effective: The only costs are for the infrastructure you use to host it.
Cons:
- Maintenance Overhead: You are responsible for setup, updates, security, and scaling of the services and the database.
- Community-led Development: While the community is active, the project's development pace and feature set may evolve differently than a commercially backed product.
2. ReportPortal.io: The Multi-Framework Test Automation Hub
ReportPortal is not a Cypress-specific tool but a comprehensive, AI-powered test automation dashboard that integrates with virtually every major testing framework, including Cypress, Playwright, Jest, and Pytest. This makes it an excellent cypress dashboard alternative for organizations with a diverse testing stack.
Key Features:
- AI-Powered Failure Triage: Its standout feature is the ability to automatically categorize new failures using machine learning. It can identify known product bugs, automation issues, or system issues, saving countless hours of manual analysis.
- Advanced Analytics: Provides rich, customizable dashboards with widgets for tracking flakiness rates, success trends, and execution times.
- Real-Time Reporting: See test results appear in the dashboard as they are executed in your CI pipeline.
- Deep Integration: Offers robust integrations with bug tracking systems like Jira, allowing you to create and link tickets directly from a failed test.
How It Works: You deploy the ReportPortal instance (often via Docker or Kubernetes) and then install an agent in your testing project. For Cypress, this is the @reportportal/agent-js-cypress
package. The agent captures test results and sends them to your ReportPortal instance.
Configuration Example:
First, install the agent:
$ npm install --save-dev @reportportal/agent-js-cypress
Then, configure the reporter in cypress.config.js
and your Cypress support files as detailed in the official ReportPortal documentation.
Pros:
- Framework Agnostic: A single dashboard for all your testing frameworks provides a unified view of quality.
- Powerful AI Features: The auto-analysis and defect triage capabilities are significant time-savers that even the official Cypress Dashboard lacks.
- Enterprise-Ready: Built with features like user management, project spaces, and robust integrations that appeal to large organizations.
Cons:
- Complexity: The setup and configuration can be more involved than a Cypress-specific tool like Sorry-Cypress.
- Resource Intensive: A full ReportPortal deployment requires more server resources (PostgreSQL, RabbitMQ, etc.) than simpler alternatives.
3. Allure Framework: The Elegant Reporting Specialist
Allure is not a test orchestrator for parallelization but is one of the most powerful and visually appealing open-source test reporting tools available. If your primary need is rich, detailed, and shareable test reports rather than parallel execution management, Allure is an outstanding choice. Many teams use it in conjunction with their CI/CD platform's native parallelization capabilities.
Key Features:
- Rich Report UI: Generates a beautiful, interactive HTML report with graphs, timelines, and detailed test body views.
- Categorization: Allows you to organize tests by features, stories, and epics for a business-centric view.
- Attachments: Easily attach screenshots, logs, videos, and any other file type to your test reports.
- History and Trends: When used with a CI server, Allure can track test history and display trend graphs showing how suite stability has changed over time.
How It Works: You add an Allure adapter to your project (allure-cypress
). When you run your tests, this adapter generates JSON files with the test result data. After the run, you use the Allure command-line tool to process these JSON files into a self-contained HTML report.
Setup Example:
Install the necessary packages:
$ npm i -D allure-commandline allure-cypress
Configure the reporter in your Cypress environment files as per the allure-cypress NPM package instructions. Then, run your tests and generate the report:
# Run tests (this generates allure-results)
$ npx cypress run
# Generate the HTML report
$ npx allure generate allure-results --clean -o allure-report
# Open the report
$ npx allure open allure-report
Pros:
- Superior Visualization: The quality and interactivity of Allure reports are best-in-class.
- Easy to Generate: Creating the static HTML report is straightforward and can be easily integrated into any CI pipeline.
- Language Agnostic: Like ReportPortal, it supports a vast number of programming languages and test frameworks.
Cons:
- No Native Parallelization: Allure is a reporting tool, not an orchestrator. You must rely on your CI provider (e.g., GitHub Actions Matrix, CircleCI Parallelism) to run tests in parallel. It reports on the results of that parallel run.
- Static Reports: The basic setup generates a static report per run. To get history and trends, you need to integrate it with a server like Jenkins with the Allure Plugin, adding a layer of complexity.