-
Notifications
You must be signed in to change notification settings - Fork 3
/
fail-fast.story
98 lines (75 loc) · 2.77 KB
/
fail-fast.story
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
Continue on failure when playing multiple stories:
docs: runner/continue-on-failure
about: |
By default whenever stories are played in sequence,
they stop when the first failure is encountered.
However, if your stories take a long time to run
you may wish to continue after the first failure.
given:
files:
example1.story: |
A Create file:
steps:
- Create file
B Create file:
steps:
- Fail
example2.story: |
C Create file a third time:
steps:
- Create file
setup: |
from hitchstory import StoryCollection, BaseEngine
from pathlib import Path
class Engine(BaseEngine):
def create_file(self, filename="step1.txt", content="example"):
with open(filename, 'w') as handle:
handle.write(content)
def fail(self):
raise Exception("Error")
variations:
Stop on failure is default behavior:
steps:
- Run:
code: |
StoryCollection(
Path(".").glob("*.story"), Engine()
).ordered_by_name().play()
will output: |-
RUNNING A Create file in /path/to/working/example1.story ... SUCCESS in 0.1 seconds.
RUNNING B Create file in /path/to/working/example1.story ... FAILED in 0.1 seconds.
B Create file:
steps:
- Fail
[1]: function 'fail'
/path/to/working/examplepythoncode.py
59 :
60 : def fail(self):
--> 61 : raise Exception("Error")
62 :
builtins.Exception
Common base class for all non-exit exceptions.
Error
Continue on failure:
steps:
- Run:
code: |
StoryCollection(
Path(".").glob("*.story"), Engine()
).ordered_by_name().continue_on_failure().play()
will output: |-
RUNNING A Create file in /path/to/working/example1.story ... SUCCESS in 0.1 seconds.
RUNNING B Create file in /path/to/working/example1.story ... FAILED in 0.1 seconds.
B Create file:
steps:
- Fail
[1]: function 'fail'
/path/to/working/examplepythoncode.py
59 :
60 : def fail(self):
--> 61 : raise Exception("Error")
62 :
builtins.Exception
Common base class for all non-exit exceptions.
Error
RUNNING C Create file a third time in /path/to/working/example2.story ... SUCCESS in 0.1 seconds.