如何识别 Specflow 上的后台步骤?

How to identify Background steps on Specflow?

我知道可以通过使用 ScenarioStepContext.Current.StepInfo 从 specflow 获取步骤信息,但是 return 如果步骤是否在背景块内,则不能。

有没有办法找出背景中的步骤或 Scenario/Scenario 大纲?

谢谢!

目前无法在 StepInfo 中获取此信息。

但是有一种可能的(但有点老套)的方法来获取这些信息。您必须查看 StackTrace 并在那里搜索名为 FeatureBackground() 的方法。这是生成代码中的方法,来自后台。

这段代码可以完成工作:

var stackTrace = new System.Diagnostics.StackTrace();
var stackFrames = stackTrace.GetFrames();
bool isBackground = stackFrames.Where(x => x.GetMethod().Name == "FeatureBackground").Any();