Releases: Behat/Behat
Releases · Behat/Behat
v3.29.0
Changed
- Add initial backwards-compatible return types to final classes, final methods and private methods. These changes should not impact end-users or extension authors.
This is work towards the upcoming 4.0.0 release, which will add support for symfony8 and introduce strict types throughout.
By @acoulton in #1763
v3.28.0
Changed
- Add backwards-compatible return types ahead of symfony8 by @Kocal (cherry-picked by @acoulton) in #1702
- Rename the default branch from
masterto3.xand remove thedev-mastercomposer branch alias by @acoulton in #1708
Added
- Add
printSkippedStepsoption to pretty formatter (true by default) by @carlos-granados in #1705 - Accept multiple path arguments on CLI
This PR was originally contributed to a 4.x branch which was then abandoned. The feature was later implemented in 3.x by a different contributor, but we wanted to also credit the previous work done. The only actual change in this release is an internal (backwards compatible) change to the use of WrongPathsException. By @adrienbrault in #1397 and merged back to 3.x by @acoulton in #1693
Fixed
- Improve performance by caching definition translations by @carlos-granados in #1706
- Resolve deprecation with symfony/console > 7.4.0, fix phpstan by @acoulton in #1757
Internal
- Add funding links - please consider supporting Behat development! by @acoulton in #1704
- Fix static analysis in PHP 8.5 by @carlos-granados in #1719
- Fix phpunit configuration by @carlos-granados in #1716
- Replace friendsofphp/php-cs-fixer by php-cs-fixer/shim by @Kocal (cherry-picked by @acoulton) #1701
- Add automated check for BC breaks in CI by @acoulton in #1762
- Refactor feature files and improve coverage of
--rerunand--rerun-only
by @carlos-granados in #1770, #1764, #1766, and #1771 - Refactor all feature files to use test fixtures instead of inline strings by @carlos-granados in #1707, #1709, #1711, #1713, #1714, #1710, #1715, #1717, #1720, #1721, #1722, #1723, #1724, #1725, #1726, #1729, #1727, #1728, #1730, #1731, #1734, #1735, #1736, #1737, #1738, #1740, #1739, #1741, #1742, #1750, #1751, #1752, #1755, #1753, #1760, #1761, #1756, #1767, #1765, #1769, #1768, #1773, and #1774
3.27.0
v3.26.0
Changed
- Support configuring how file paths are rendered by the JUnit formatter (relative or absolute, removing a prefix, etc). Previously, the JUnit formatter would print an absolute path unless the file was beneath the current working
directory.
The new default is to print paths relative to the Behat base directory - in most cases this will also be the current working directory and therefore the result will be the same. However, in some cases the reported file paths will change so you may wish to review the configuration e.g. if your tooling aggregates build results over time.
By @carlos-granados in #1677
Added
- Implement JSON formatter by @carlos-granados in #1674, #1680, #1681, #1677 and #1684.
- Add feature
fileattribute on<testsuite>nodes in the JUnit formatters by @carlos-granados in #1680 - Add
timeroption to disable reporting execution times in the JUnit formatter by @carlos-granados in #1681
Fixed
error_reportingin the Behat configuration should take precedence over system defaults by @carlos-granados in #1675- Ensure runtime assertions are checked during
--convert-configby @carlos-granados in #1679 - Include consistent index & placeholders for Example names in JUnit by @acoulton in [#1682]#1682)
based on work previously done by @uuf6429.
Internal
- Add AGENTS.md file with instructions for AI agents by @carlos-granados in #1672
- Fix php version constraint in composer.json by @carlos-granados in #1678
v3.25.0
Added
- Add short_summary formatter option by @carlos-granados in #1664
Fixed
Internal
- Remove PHP 8 error conversion by @carlos-granados in #1665
- Apply Rector rules to use PHP 8.1 language features by @carlos-granados in #1666
v3.24.1
v3.24.0
Changed
- Throw if a step provides an unexpected PyString or Table argument, to highlight cases where step definitions do not match their usage causing potential false-positive passes. If users have stubbed steps with incomplete arguments (e.g. to throw a PendingException) these will now fail before executing. Steps generated from Behat's snippets or IDEs should not be affected as these should already define appropriate PyStringNode / TableNode arguments. By @jdeniau in #1614
Added
Fixed
Internal
- Rector code quality by @carlos-granados in #1648
- Run fixture-based scenarios in isolated directories by @acoulton in #1657
v3.23.0
Added
- Support providing multiple paths for features to run by @marmichalski in #1611
- Add editorUrl option to provide clickable links to IDEs in CLI output by @carlos-granados in #1638
- Add removePrefix option to trim printed paths in CLI output @carlos-granados in #1644
- Add line number of last executed step in JUnit by @magnetik in #1608
Fixed
- Relaxed constraints on nikic/php-parser and composer/xdebug-handler dependencies to allow wider use of newer Behat releases by @acoulton in #1650 and #1649
Internal
- Add Rector and standardise namespace imports by @carlos-granados in #1640
- Update expected output in tests to reflect new gherkin translations by @acoulton in #1635
- Remove start signs in docs to improve copy/paste by @yosmanyga in #1647
v3.16.1
Changed
- Remove dependency on file location in Gherkin package. The (internal) service container parameters gherkin.paths.lib
and gherkin.paths.i18n are no longer defined or used. Minimum behat/gherkin version is now ^4.12.0.
By @carlos-granados in #1604, backported from 3.20.0 to fix errors for users stuck on 3.16.0 due to
dependency conflicts.
v3.22.0
Changed
- Suggested method names for new step definitions will no longer be transliterated to ASCII. Users working in languages whose characters are mostly outside the allowed UTF-8 range will see generic
stepDefinitionXnames. We have provided an extension point for custom suggestion implementations, and would consider providing an official extension. If this affects you, please open a discussion on the Behat repository. By @acoulton in #1633 - The behat/transliterator package is no longer required and will shortly be archived.
Internal
- Update all code style to Symfony coding style (with small variations) by @carlos-granados in #1628