pytest-dev / pytest-dev/pytest-bdd
Running gherkin reporter on pytest-bdd tests raises KeyError
Open
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.5k
- Forks
- 251
- Avg merge
- 43m
- Merged PRs (30d)
- 2
Description
Running below test:
pytest -k 'test_parametrized' --gherkin-terminal-reporter --gherkin-terminal-reporter-expanded
Raises following error:
Feature:
Scenario: Parametrized given, when, thens
INTERNALERROR> Traceback (most recent call last):
INTERNALERROR> File "/Users/milosz.sliwinski/.virtualenvs/pytest-bdd/lib/python2.7/site-packages/_pytest/main.py", line 96, in wrap_session
INTERNALERROR> session.exitstatus = doit(config, session) or 0
INTERNALERROR> File "/Users/milosz.sliwinski/.virtualenvs/pytest-bdd/lib/python2.7/site-packages/_pytest/main.py", line 131, in _main
INTERNALERROR> config.hook.pytest_runtestloop(session=session)
INTERNALERROR> File "/Users/milosz.sliwinski/.virtualenvs/pytest-bdd/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 724, in __call__
INTERNALERROR> return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
INTERNALERROR> File "/Users/milosz.sliwinski/.virtualenvs/pytest-bdd/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 338, in _hookexec
INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs)
INTERNALERROR> File "/Users/milosz.sliwinski/.virtualenvs/pytest-bdd/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 333, in <lambda>
INTERNALERROR> _MultiCall(methods, kwargs, hook.spec_opts).execute()
INTERNALERROR> File "/Users/milosz.sliwinski/.virtualenvs/pytest-bdd/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 596, in execute
INTERNALERROR> res = hook_impl.function(*args)
INTERNALERROR> File "/Users/milosz.sliwinski/.virtualenvs/pytest-bdd/lib/python2.7/site-packages/_pytest/main.py", line 152, in pytest_runtestloop
INTERNALERROR> item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem)
INTERNALERROR> File "/Users/milosz.sliwinski/.virtualenvs/pytest-bdd/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 724, in __call__
INTERNALERROR> return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
INTERNALERROR> File "/Users/milosz.sliwinski/.virtualenvs/pytest-bdd/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 338, in _hookexec
INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs)
INTERNALERROR> File "/Users/milosz.sliwinski/.virtualenvs/pytest-bdd/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 333, in <lambda>
INTERNALERROR> _MultiCall(methods, kwargs, hook.spec_opts).execute()
INTERNALERROR> File "/Users/milosz.sliwinski/.virtualenvs/pytest-bdd/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 595, in execute
INTERNALERROR> return _wrapped_call(hook_impl.function(*args), self.execute)
INTERNALERROR> File "/Users/milosz.sliwinski/.virtualenvs/pytest-bdd/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 253, in _wrapped_call
INTERNALERROR> return call_outcome.get_result()
INTERNALERROR> File "/Users/milosz.sliwinski/.virtualenvs/pytest-bdd/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 279, in get_result
INTERNALERROR> _reraise(*ex) # noqa
INTERNALERROR> File "/Users/milosz.sliwinski/.virtualenvs/pytest-bdd/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 264, in __init__
INTERNALERROR> self.result = func()
INTERNALERROR> File "/Users/milosz.sliwinski/.virtualenvs/pytest-bdd/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 596, in execute
INTERNALERROR> res = hook_impl.function(*args)
INTERNALERROR> File "/Users/milosz.sliwinski/.virtualenvs/pytest-bdd/lib/python2.7/site-packages/_pytest/runner.py", line 66, in pytest_runtest_protocol
INTERNALERROR> runtestprotocol(item, nextitem=nextitem)
INTERNALERROR> File "/Users/milosz.sliwinski/.virtualenvs/pytest-bdd/lib/python2.7/site-packages/_pytest/runner.py", line 79, in runtestprotocol
INTERNALERROR> reports.append(call_and_report(item, "call", log))
INTERNALERROR> File "/Users/milosz.sliwinski/.virtualenvs/pytest-bdd/lib/python2.7/site-packages/_pytest/runner.py", line 137, in call_and_report
INTERNALERROR> hook.pytest_runtest_logreport(report=report)
INTERNALERROR> File "/Users/milosz.sliwinski/.virtualenvs/pytest-bdd/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 724, in __call__
INTERNALERROR> return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
INTERNALERROR> File "/Users/milosz.sliwinski/.virtualenvs/pytest-bdd/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 338, in _hookexec
INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs)
INTERNALERROR> File "/Users/milosz.sliwinski/.virtualenvs/pytest-bdd/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 333, in <lambda>
INTERNALERROR> _MultiCall(methods, kwargs, hook.spec_opts).execute()
INTERNALERROR> File "/Users/milosz.sliwinski/.virtualenvs/pytest-bdd/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 596, in execute
INTERNALERROR> res = hook_impl.function(*args)
INTERNALERROR> File "/Users/milosz.sliwinski/workspace/pytest-bdd/pytest_bdd/gherkin_terminal_reporter.py", line 104, in pytest_runtest_logreport
INTERNALERROR> step_name = self._format_step_name(step['name'], **report.scenario['example_kwargs'])
INTERNALERROR> File "/Users/milosz.sliwinski/workspace/pytest-bdd/pytest_bdd/gherkin_terminal_reporter.py", line 122, in _format_step_name
INTERNALERROR> param_value = example_kwargs[param_name]
INTERNALERROR> KeyError: u'start'
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the failure with the pytest command shown, then inspect pytest_bdd/gherkin_terminal_reporter.py at pytest_runtest_logreport and _format_step_name. Verify the parametrized test completes without the KeyError and that the expanded Gherkin report handles the example parameters.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- testing-qa
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100