Skip to content

Commit 8897a41

Browse files
dsax7hristiy4n
authored andcommitted
Add skipped parameter to steps
- the skipped parameter can be used to track which steps have been skipped and adjust the behaviour appropriatelly (ex. change the output colour to yellow)
1 parent d45c543 commit 8897a41

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

src/pytest_bdd/parser.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,7 @@ class Step:
296296
indent: int
297297
keyword: str
298298
failed: bool = field(init=False, default=False)
299+
skipped: bool = field(init=False, default=False)
299300
scenario: ScenarioTemplate | None = field(init=False, default=None)
300301
background: Background | None = field(init=False, default=None)
301302
lines: list[str] = field(init=False, default_factory=list)
@@ -308,6 +309,7 @@ def __init__(self, name: str, type: str, indent: int, line_number: int, keyword:
308309
self.keyword = keyword
309310

310311
self.failed = False
312+
self.skipped = False
311313
self.scenario = None
312314
self.background = None
313315
self.lines = []

src/pytest_bdd/reporting.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
class StepReport:
2323
"""Step execution report."""
2424

25+
skipped = False
2526
failed = False
2627
stopped = None
2728

@@ -44,16 +45,20 @@ def serialize(self) -> dict[str, Any]:
4445
"type": self.step.type,
4546
"keyword": self.step.keyword,
4647
"line_number": self.step.line_number,
48+
"skipped": self.skipped,
4749
"failed": self.failed,
4850
"duration": self.duration,
4951
}
5052

51-
def finalize(self, failed: bool) -> None:
53+
54+
def finalize(self, failed: bool, skipped=False) -> None:
5255
"""Stop collecting information and finalize the report.
5356
5457
:param bool failed: Whether the step execution is failed.
58+
:param bool skipped: Indicates if the step execution is skipped.
5559
"""
5660
self.stopped = time.perf_counter()
61+
self.skipped = skipped
5762
self.failed = failed
5863

5964
@property

0 commit comments

Comments
 (0)