如何在钩子中使用ScenarioStepContext?

时间:2018-06-13 13:40:11

标签: c# nunit specflow

我正在使用SpecFlow和NUnit3,并试图访问钩子中的步骤上下文。

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

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

  

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

[AfterStep]
public void LogStepResult(ScenarioStepContext scenarioStepContext,
    ScenarioContext scenarioContext)
{
}

2 个答案:

答案 0 :(得分:1)

发现它埋藏在一些文件......

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

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

答案 1 :(得分:0)

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