Skip to content

Commit

Permalink
FIX: feature.run_items processing with Rule(s).
Browse files Browse the repository at this point in the history
  • Loading branch information
jenisys committed Mar 14, 2019
1 parent 6b698d7 commit c27f43e
Showing 1 changed file with 16 additions and 8 deletions.
24 changes: 16 additions & 8 deletions behave/reporter/junit.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@
from xml.etree import ElementTree
from datetime import datetime
from behave.reporter.base import Reporter
from behave.model import Scenario, ScenarioOutline, Step
from behave.model import Rule, Scenario, ScenarioOutline, Step
from behave.model_core import Status
from behave.formatter import ansi_escapes
from behave.model_describe import ModelDescriptor
Expand Down Expand Up @@ -236,13 +236,8 @@ def feature(self, feature):
feature_name = feature.name or feature_filename
suite.set(u'name', u'%s.%s' % (classname, feature_name))

# -- BUILD-TESTCASES: From scenarios
for scenario in feature:
if isinstance(scenario, ScenarioOutline):
scenario_outline = scenario
self._process_scenario_outline(scenario_outline, report)
else:
self._process_scenario(scenario, report)
# -- BUILD-TESTCASES: From run_items (and scenarios)
self._process_run_items_for(feature, report)

# -- ADD TESTCASES to testsuite:
for testcase in report.testcases:
Expand Down Expand Up @@ -457,6 +452,19 @@ def _process_scenario(self, scenario, report):
if scenario.status != Status.skipped or self.show_skipped:
report.testcases.append(case)

def _process_run_items_for(self, parent, report):
for run_item in parent.run_items:
if isinstance(run_item, Rule):
self._process_rule(run_item, report)
elif isinstance(run_item, ScenarioOutline):
self._process_scenario_outline(run_item, report)
else:
assert isinstance(run_item, Scenario)
self._process_scenario(run_item, report)

def _process_rule(self, rule, report):
self._process_run_items_for(rule, report)

def _process_scenario_outline(self, scenario_outline, report):
assert isinstance(scenario_outline, ScenarioOutline)
for scenario in scenario_outline:
Expand Down

0 comments on commit c27f43e

Please sign in to comment.