C# 如何在钩子中使用ScenarioStepContext?

C# 如何在钩子中使用ScenarioStepContext?,c#,nunit,specflow,C#,Nunit,Specflow,我将SpecFlow与NUnit3一起使用,并尝试在钩子中访问步骤上下文 我正在并行运行测试,因此不使用任何静态实例上下文,而是使用SpecFlow的参数解析特性 使用如下钩子,ScenarioContext实例可以很好地解析,但ScenarioStepContext会导致绑定抛出错误: 无法解析基本类型或结构:TechTalk.SpecFlow.Bindings.StepDefinitionType(解析路径:TechTalk.SpecFlow.ScenarioStepContext->Tec

我将SpecFlow与NUnit3一起使用,并尝试在钩子中访问步骤上下文

我正在并行运行测试,因此不使用任何静态实例上下文,而是使用SpecFlow的参数解析特性

使用如下钩子,ScenarioContext实例可以很好地解析,但ScenarioStepContext会导致绑定抛出错误:

无法解析基本类型或结构:TechTalk.SpecFlow.Bindings.StepDefinitionType(解析路径:TechTalk.SpecFlow.ScenarioStepContext->TechTalk.SpecFlow.StepInfo)'


发现它埋在一些文件里

您可以使用StepContext属性中已解析的
ScenarioStepContext
附带的
ScenarioStepContext
,而不是尝试解析
ScenarioStepContext

[AfterStep]
public void LogStepResult(ScenarioContext scenarioContext)
{
    var stepContext = scenarioContext.StepContext;
}

发现它埋在一些文件里

您可以使用StepContext属性中已解析的
ScenarioStepContext
附带的
ScenarioStepContext
,而不是尝试解析
ScenarioStepContext

[AfterStep]
public void LogStepResult(ScenarioContext scenarioContext)
{
    var stepContext = scenarioContext.StepContext;
}

如果测试中没有使用并行执行,那么可以直接调用ScenarioContext。这是一个例子。如果您并行运行测试,则可以使用前面的答案。

如果您在测试中未使用并行执行,则可以直接调用ScenarioContext。这是一个例子。如果您并行运行测试,那么您可以使用前面的答案