如何在 Gherkin 测试中提示用户?

How to prompt user in a Gherkin test?

我们正在使用 Gherkin/Behave(在 Python 中)来测试嵌入式应用程序。 Gherkin 代码在服务器上执行,而实际的 activity 由设备上的应用程序执行,通过网络进行通信。设备上的应用需要手动启动。

我需要测试以重启设备。我可以让测试应用程序执行重启,但随后我需要服务器上的代码提示用户重启测试应用程序,以便测试可以继续后续步骤。但是我无法在 "steps" 文件中获取 Python 代码来输出任何文本。

我很欣赏 Gherkin/Behave 旨在提供全自动测试,但现实世界的限制适用于此。

for formatter in context._runner.formatters:
    formatter.stream.write("Your message here\n")
    formatter.stream.write("\n")

需要额外的换行符,因为 Behave 首先打印步骤的描述,如果通过则将其覆盖为绿色。额外的换行符确保此覆盖覆盖空行而不是您的文本。

请注意,当我对此进行测试时,我使用的是默认的 "pretty" 格式化程序。我不知道它与其他格式化程序的配合情况如何。