All notable changes to this project will be documented in this file.
-
Drop support for Cypress v7.
-
Add support for Cypress v11.
-
Better support for worlds in TypeScript, fixes #864.
-
Extended documentation, particularly in regards to pairing step definitions.
- Performance improvements to diagnostics.
- Correctly assign
testState.pickleStep
, fixes #836.
- Support absolute paths in
stepDefinitions
, fixes #832.
-
Add a very rudimentary way of diagnosing validity of steps, IE. whether each step is matching one, and only one, step definition, fixes #754.
-
Remove
And
andBut
from the public API, fixes #821. -
Output snippet suggestions upon missing step definition, fixes #799.
-
Total execution time is correctly shown in HTML reports, fixes #813.
-
Validate inclusion of
addCucumberPreprocessorPlugin()
insetupNodeEvents()
, fixes #820.
-
Start time and execution time is shown in HTML reports, fixes #798.
-
Add current step information to
window.testState
, fixes #800.
-
Allow overriding env using tags, fixes #792.
-
Correct some path handling on Windows, fixes #788.
-
Correct calculation of common ancestor path, even when specs are filtered, fixes #785.
Breaking changes:
- A minor change to step definitions has been introduced, affecting users of Cypress v10 or higher. When upgrading to v11.0.0 of the processor, users was instructed to remove certain prefixes from their step definitions. This is no longer required and said prefixes can be re-introduced when upgrading to v12.0.0 of the preprocessor. In other words, if your configuration looks like this
{
"stepDefinitions": [
"[filepath].{js,ts}",
"cypress/support/step_definitions/**/*.{js,ts}"
]
}
.. then it should now look like this (notice the addition of cypress/e2e
)
{
"stepDefinitions": [
"cypress/e2e/[filepath].{js,ts}",
"cypress/support/step_definitions/**/*.{js,ts}"
]
}
Note: Step definitions doesn't necessarily have to be put in cypress/e2e
and alongside your feature files. They can be contained in an entirely separate directory, if desired. This fixes #748.
Other changes:
-
Updated all
@cucumber/*
dependencies. -
Added native support for HTML reports using
@cucumber/html-formatter
, fixes #780. -
Correct an issue with non-array
stepDefinitions
, fixes #781.
- Expose member
getStepDefinitionPatterns
.
- Improve error message upon missing step definition, fixes #763.
-
Step definition with extension
.tsx
is picked up by default, paving the way for component testing. -
Added an example illustrating component testing with React + Webpack.
- Retried test would eventually yield "No commands were issued in the test", fixes #749.
- Enable configuring of JSON args, allowing for custom JSON formatters, fixes #742.
-
Enable
*.mjs
file extension by default, when looking for step definitions. -
Add a default export to
@badeball/cypress-cucumber-preprocessor/esbuild
. -
Add examples for CJS and ESM.
- Enable test configuration overrides, such as retrability of a single scenario, fixes #697.
Breaking changes:
- Dropped support for Cypress v6.
Other changes:
-
Added support for Cypress v10. 🎉
-
Untitled scenario outline no longer errors, fixes #731.
-
Outputting only messages is now possible, fixes #724.
-
Allow absolute output paths, partially fixes #736.
-
Output directories are automatically created recursively, partially fixes #736.
There's no changes to configuration options, but if your configuration looked like this pre-10
{
"stepDefinitions": [
"cypress/integration/[filepath].{js,ts}",
"cypress/support/step_definitions/**/*.{js,ts}"
]
}
.. then it should look like this post-10 (notice the removal of cypress/integration
)
{
"stepDefinitions": [
"[filepath].{js,ts}",
"cypress/support/step_definitions/**/*.{js,ts}"
]
}
- Allow integration folders outside of project root, fixes #719.
- Fixed an issue where internal calls to
cy.wrap
was being logged.
Breaking changes:
- Exported member
resolvePreprocessorConfiguration
now requires aprojectRoot
variable and aenvironment
variable.
Other changes:
- Configuration values can now be overriden using (Cypress-) environment variable.
- Fixed an issue with returning chainables from step definitions.
- Allow handlers to be omitted and attached explicitly, fixes #705 (undocumented, experimental and API is subject to change anytime).
- Fixed an issue where programmatically skipping a test would error.
- Fixed an issue where Before hooks would error.
- Add timestamps and durations to messages.
- Automatically skip tests marked with
@skip
.
- Correct types for
isFeature
anddoesFeatureMatch
.
- Prevent an error when
experimentalInteractiveRunEvents
is enabled.
- Fixed an issue where the preprocessor was throwing in interactive mode when JSON reports was enabled.
- Fixed an issue when running all specs.
Due to an publishing error from my side, this version is identical to v9.0.0.
This is the point where badeball's fork becomes the mainline and replaces TheBrainFamily's implementation. This implementation has been re-written from scratch in TypeScript, has more thorough test coverage and is filled with a bunch of new feature. Read more about the transfer of ownership here.
The changelog of the two ancestors can be found at