@@ -156,6 +156,17 @@ def fail(self):
156156 report .finalize (failed = True )
157157 self .add_step_report (report )
158158
159+ def skip (self ):
160+ """Stop collecting information and finalize the report as skipped."""
161+ self .current_step_report .finalize (failed = False , skipped = True )
162+ remaining_steps = self .scenario .steps [len (self .step_reports ) :]
163+
164+ # Skip the rest of the steps and make reports.
165+ for step in remaining_steps :
166+ report = StepReport (step = step )
167+ report .finalize (failed = False , skipped = True )
168+ self .add_step_report (report )
169+
159170
160171def runtest_makereport (item , call , rep ):
161172 """Store item in the report object."""
@@ -173,6 +184,11 @@ def before_scenario(request, feature, scenario):
173184 request .node .__scenario_report__ = ScenarioReport (scenario = scenario , node = request .node )
174185
175186
187+ def step_skip (request , feature , scenario , step , step_func , step_func_args , exception ):
188+ """Finalize the step report as skipped."""
189+ request .node .__scenario_report__ .skip ()
190+
191+
176192def step_error (request , feature , scenario , step , step_func , step_func_args , exception ):
177193 """Finalize the step report as failed."""
178194 request .node .__scenario_report__ .fail ()
0 commit comments