跳至内容

当正在进行的故事遇到以下任何终止信号时

  • SIGTERM
  • SIGINT
  • SIGQUIT
  • SIGHUP

那么它将触发引擎的 tear_down 方法。

实际上,这意味着如果你正在运行一系列故事,Ctrl-C 应该停止当前执行,运行 tear_down,然后不再运行任何故事。

代码示例

example.story

Create files:
  steps:
    - Pause forever

Should never run:
  steps:
    - Should not happen
engine.py

from hitchstory import BaseEngine
from code_that_does_things import reticulate_splines
import psutil

class Engine(BaseEngine):
    def pause_forever(self):
        psutil.Process().terminate()

    def should_not_happen(self):
        raise Exception("This exception should never be triggered")

    def tear_down(self):
        print("Reticulate splines")

带代码

from hitchstory import StoryCollection
from pathlib import Path
from engine import Engine
StoryCollection(Path(".").glob("*.story"), Engine()).ordered_by_name().play()

将输出

RUNNING Create files in /path/to/working/example.story ... Aborted
Reticulate splines

可执行规范

abort.story storytests 自动生成的文档。