Test Frameworks
Set up your test framework to report its results to Test Engine, with a Mergify plugin or a JUnit XML report.
Test Engine builds each test’s history from the results your CI runs report. Pick your framework below: its page shows the setup, from the package to install to the CI step that sends the results. A framework reports in one of two ways:
-
Plugin runs inside your tests: a Mergify package sends the results when the run ends and applies quarantine in the run. On pull requests, it reruns new tests to catch flaky ones before they merge (Prevention).
-
JUnit report is uploaded after the run: the framework writes a JUnit XML file, then a CI step uploads it and applies quarantine, so the job fails only on failures that are not quarantined. No reruns: Prevention needs a plugin.
- Bun JS / TS
- Cypress JS / TS
- Deno JS / TS
- Jasmine JS / TS
- Plugin Jest JS / TS
- Karma JS / TS
- Plugin Mocha JS / TS
- Nightwatch JS / TS
- Node.js test runner JS / TS
- Plugin Playwright JS / TS
- Plugin Vitest JS / TS
- WebdriverIO JS / TS
- Behave Python
- Plugin pytest Python
- Robot Framework Python
- unittest and Django Python
- Plugin Minitest Ruby
- Plugin RSpec Ruby
- Android JVM
- JUnit JVM
- Kotest JVM
- TestNG JVM
- MSTest .NET
- NUnit .NET
- xUnit.net .NET
- Pest PHP
- PHPUnit PHP
- Ginkgo Go
- Go Go
- Rust Rust
- CTest C / C++
- GoogleTest C / C++
- Swift Testing Swift
- XCTest Swift
- Dart Dart
- Flutter Dart
- ExUnit Elixir
- Bazel Multi-language
- Cucumber Multi-language
- Not listed? Any JUnit XML report
No framework matches. If yours writes JUnit XML, a JUnit report works.
Other frameworks
Section titled Other frameworksIf your framework is not listed but can write a JUnit XML report, follow the
upload steps on any JUnit report page, such as
JUnit, and point them at your report:
report_path in the GitHub Actions and Buildkite steps, or the last argument
of mergify ci junit-process.
Was this page helpful?
Thanks for your feedback!