Skip to content

Commit

Permalink
Fixing issue when re-executing failing scenarios
Browse files Browse the repository at this point in the history
  • Loading branch information
anibalinn committed Aug 26, 2024
1 parent 9d064ca commit cb80c3a
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 42 deletions.
77 changes: 38 additions & 39 deletions behavex/outputs/report_json.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,45 +153,44 @@ def _processing_scenarios(scenarios, scenario_list, id_feature):
scenario_outline_index = 0
overall_status = 'passed'
for scenario in scenarios:
if not (scenario.status in ["skipped", "untested"] and get_env("RERUN_FAILURES")):
# Set MANUAL to False in order filter regardless of it
error_msg, error_lines, error_step, error_background = _get_error_scenario(
scenario
)
# pylint: disable=W0123
scenario_tags = get_scenario_tags(scenario)
if match_for_execution(scenario_tags):
# Scenario was selectable
scenario_info = {}
scenario_info['name'] = getattr(scenario, 'name')
scenario_info['duration'] = getattr(scenario, 'duration')
scenario_info['status'] = getattr(scenario, 'status').name
scenario_info['tags'] = getattr(scenario, 'effective_tags')
scenario_info['filename'] = text(scenario.filename)
scenario_info['feature'] = scenario.feature.name
scenario_info['id_feature'] = id_feature
steps = []
for step in scenario.steps:
add_step_info(step, steps)
scenario_info['steps'] = steps
scenario_info['outline_index'] = scenario_outline_index
if scenario_info['status'] == 'failed':
overall_status = 'failed'
scenario_outline_index += 1
scenario_info['background'] = _processing_background(scenario)
scenario_info['error_msg'] = error_msg
scenario_info['error_lines'] = error_lines
scenario_info['error_step'] = error_step
scenario_info['error_background'] = error_background
scenario_info['id_hash'] = _generate_hash(scenario.name)
if scenario.feature.name in global_vars.retried_scenarios:
if (
scenario.name
in global_vars.retried_scenarios[scenario.feature.name]
):
scenario_info['retried'] = True

scenario_list.append(scenario_info)
# Set MANUAL to False in order filter regardless of it
error_msg, error_lines, error_step, error_background = _get_error_scenario(
scenario
)
# pylint: disable=W0123
scenario_tags = get_scenario_tags(scenario)
if match_for_execution(scenario_tags):
# Scenario was selectable
scenario_info = {}
scenario_info['name'] = getattr(scenario, 'name')
scenario_info['duration'] = getattr(scenario, 'duration')
scenario_info['status'] = getattr(scenario, 'status').name
scenario_info['tags'] = getattr(scenario, 'effective_tags')
scenario_info['filename'] = text(scenario.filename)
scenario_info['feature'] = scenario.feature.name
scenario_info['id_feature'] = id_feature
steps = []
for step in scenario.steps:
add_step_info(step, steps)
scenario_info['steps'] = steps
scenario_info['outline_index'] = scenario_outline_index
if scenario_info['status'] == 'failed':
overall_status = 'failed'
scenario_outline_index += 1
scenario_info['background'] = _processing_background(scenario)
scenario_info['error_msg'] = error_msg
scenario_info['error_lines'] = error_lines
scenario_info['error_step'] = error_step
scenario_info['error_background'] = error_background
scenario_info['id_hash'] = _generate_hash(scenario.name)
if scenario.feature.name in global_vars.retried_scenarios:
if (
scenario.name
in global_vars.retried_scenarios[scenario.feature.name]
):
scenario_info['retried'] = True

scenario_list.append(scenario_info)
return overall_status, scenario_list


Expand Down
4 changes: 2 additions & 2 deletions behavex/runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -1084,8 +1084,8 @@ def _get_feature_json_skeleton(behave_element):
feature.scenarios = [behave_element]
else:
raise Exception("No feature or scenario to process...")
json_skeleton = json.dumps(generate_execution_info([feature])[0])
return json_skeleton
execution_info = generate_execution_info([feature])
return json.dumps(execution_info[0]) if execution_info else {}


def _get_progress_bar_instance(parallel_scheme, total_elements):
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

setup(
name='behavex',
version='4.0.1rc6',
version='4.0.1rc7',
license="MIT",
platforms=['any'],
python_requires='>=3.5',
Expand Down

0 comments on commit cb80c3a

Please sign in to comment.