Changed
- Throw ParserException if file ends with tags by @acoulton in #313
- Throw ParserException if Background comes after first Scenario by @acoulton in #343
- For compatibility with the official cucumber/gherkin parsers, we now accept some gherkin syntax that would previously have triggered a ParserException. Users may wish to consider running a tool like gherkin-lint in CI to detect incomplete feature files or valid-but-unusual gherkin syntax. The specific changes are:
- Parse
Scenario
andScenario Outline
as synonyms depending on the presence (or not) of anExamples:
keyword.
by @acoulton in #316 and #324 - Do not throw on some unexpected Feature / Language tags by @acoulton in #323
- Do not throw on
.feature
file that does not contain a Feature by @acoulton in #340 - Ignore content after table right-hand
|
(instead of throwing) by @acoulton in #341
- Parse
- Remove the line length from the NewLine token value by @stof in #338
- Added precise PHPStan type information by @stof in #332, #333, #339 and #334
Internal
- Make private props readonly; fix tests by @uuf6429 in #319
- Use the
Yaml::parseFile
API to handle Yaml files by @stof in #335 - test: Make CucumberND name reading consistent by @uuf6429 in #309
- test: Use vfsStream to simplify / improve filesystem-related tests by @uuf6429 in #298
- test: Handle optional tableHeader when loading NDJson examples by @uuf6429 in #294
- test: Refactor valid ParserExceptionsTest examples into cucumber/gherkin testdata by @acoulton in #322
- test: Compare step arguments when checking gherkin parity by @acoulton in #325
- test: Use a custom object comparator to ignore the keywordType of StepNode by @stof in #331
- ci: Add conventional title to gherkin update, error on missing asserts by @acoulton in #314
- Assert that preg_split does not fail when splitting a table row by @stof in #337
- Add assertions in the parser to reflect the structure of tokens by @stof in #342
- style: Define and change phpdoc order coding style by @uuf6429 in #345