Specflow的[AfterScenario]

Vaj*_*jda 20 specflow

我已经在我的stepdefinition类中定义了[AfterScenario]绑定,并且具有将在每个场景之后执行的方法,但是由于某些原因这不起作用.在每个场景之后都没有调用我的方法,因此在经过一些测试之后,excel仍然保持打开状态......对于一些不成功的测试,也没有日志.为什么?你有什么想法或建议吗?

这是我的方法:

[AfterScenario]        
public void AfterScenario()
{
    if (TestContext.CurrentContext.Result.State != TestState.Success) ErrorLog();
    excelDriver.Stop();
}
Run Code Online (Sandbox Code Playgroud)

小智 24

我是第一次在今天玩自己的BeforeScenario和AfterScenario.

我用@sometag标记了我的场景,然后使用我的AfterScenario()方法的属性使用相同的标签(没有'@'或at符号)作为参数,例如

功能文件:

@sometag
Feature: Some feature or other
Here is my feature description
...
Scenario: Some scenario
...
Run Code Online (Sandbox Code Playgroud)

事件档案:

[AfterScenario("sometag")]
public void AfterScenario()
{
    // stuff...
}
Run Code Online (Sandbox Code Playgroud)

我不知道标记这样的东西是否是关键.也许没有标签AfterScenario()会一直开火,我没试过.

您可以尝试的另一件事是将VS附加到nunit-agent.exe进程,在AfterScenario()方法中设置断点并查看它何时被击中.