摘要:在 -w 模式下生成测试报告或测试运行转储时,我想抑制步骤的标准输出输出,这些步骤作为后台步骤运行。我可以控制通过环境变量产生的输出,但我无法检测何时设置它,这取决于步骤是否在后台。对我来说更好的是能够告诉行为不以编程方式在后台步骤执行中捕获/输出标准输出。
细节:
Feature: Foo
Background:
Given foo <setup_mode> was run successfully
Scenario: ...
Given foo <test_mode> was run successfully
step 'foo' 在 stdout 上产生很多输出,当它是测试背景的一部分时,我想将其关闭。最好是在背景上使用@quiet 标记,我可以在其中将环境设置为在步骤执行时不健谈,但在行为中不支持背景标记。
在这里,我无法通过上下文或标签检测到我所在的位置:
def before_step(context, tag):
如果我在后台或场景中,context._dir 不会提供给我。
=> 任何关于此的最佳实践?
我目前的方法是通过专用的给定步骤显式切换输出(例如“并且 api 输出是 [on|off] ”),但由于背景和测试步骤始终相同,我希望在幕后完成。