首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Specflow的[AfterScenario]

Specflow的[AfterScenario]
EN

Stack Overflow用户
提问于 2011-02-14 19:16:24
回答 2查看 16.9K关注 0票数 21

我已经在我的stepdefinition类中定义了AfterScenario绑定,并拥有将在每个场景之后执行的方法,但由于某种原因,这不起作用。我的方法并不是在每个场景之后都会被调用,所以在一些测试之后excel仍然是打开的……此外,对于一些不成功的测试也没有日志。为什么?你有什么想法或建议吗?

下面是我的方法:

代码语言:javascript
复制
[AfterScenario]        
public void AfterScenario()
{
    if (TestContext.CurrentContext.Result.State != TestState.Success) ErrorLog();
    excelDriver.Stop();
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-15 12:08:02

我今天第一次亲自玩BeforeScenario和AfterScenario的东西。

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

功能文件:

代码语言:javascript
复制
@sometag
Feature: Some feature or other
Here is my feature description
...
Scenario: Some scenario
...

事件文件:

代码语言:javascript
复制
[AfterScenario("sometag")]
public void AfterScenario()
{
    // stuff...
}

我不知道这样的标签是否是关键。也许没有标签,AfterScenario()就会被触发,我没有尝试过。

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

票数 28
EN

Stack Overflow用户

发布于 2013-05-06 16:40:47

如果你不想为每个场景执行afterScenario(),那么这样的标记是关键,但是如果你想让它在所有场景之后运行,那么就不需要标记了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4991517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档