* Fixes#273: Fix for unicode steps in gherkin reporter
* Test unicode step names in gherkin expanded mode
* Unnecessary encoding declaration in gherkin reporter test removed
* Fix unicode steps by using unicode_literals in gherkin_terminal_reporter.py
* Do not use deprecated MarkInfo objects on pytest>=3.6
* Provide way to get all parametrize args, not only the ones from the closest marker
* Fix for remaining tests that were using depracated MarkInfo objects
According to [1], when the outline scenarios are
reported in 'expand' mode, all the outlines will
be expanded to scenarios with their test results.
Also, the step name parameters are filled in.
This is a different mode than without 'expand'
mode[2], where the scenario outlines are reported
so the step names are not filled in and there are
no test results. The "examples" are reported in
this mode.
Since pytest-bdd does report the results of each
step of an outline scenario as separate scenarios,
it looks more like the 'expand' mode, so I've
added the filling in of the parameters in the
step names to make it more compliant.
[1] https://relishapp.com/cucumber/cucumber/docs/formatters/json-output-formatter#scenario-outline-expanded
[2] https://relishapp.com/cucumber/cucumber/docs/formatters/json-output-formatter#scenario-outline
The issue, that if user disable strict gherkin check, it will lead to
situation, when wrong Error be raised. For the current situation it was
a message, that Step is defined outside of Background section.
Current patch makes check for orphan steps more tolerant for features
without strict gherkin syntax.
Also README was updated to show explicitly, that using "When, Then" is
prohibited in "Background" section.
In https://github.com/pytest-dev/pytest/pull/1586 the "yieldctx"
argument to FixtureDef was removed.
This uses utils.get_args to check if it's needed or not so pytest-bdd
works on pytest versions before and after that PR.