c# - 为什么我的 Specflow [AfterTestRun] Hook 被调用两次

标签 c# testing automated-tests specflow specrun

[测试运行后]

这个钩子(Hook)对我来说被调用了两次。

我的 C# 代码是正确的,在每个场景结束时,我将结果保存到一个并发包中。

然后我使用[AfterTestRun] Hook 调用并发包并将数据保存到数据库中。我看到了重复的数据,所以我假设它被调用了两次。

附加信息:
我正在使用 SpecRun 与以下配置文件并行运行我的测试

Execution stopAfterFailures="1" retryCount="0" testThreadCount="3" testSchedulingMode="Sequential"

已安装的软件包
SpecFlow 版本 2.0.0
SpecRun.SpecFlow 1.3.0
SpecRun.Runner 1.3.0

我正在使用 SpecRun.SpecFlow 来运行我的测试。

此外,如果每个功能中有多个场景,这个 Hook 将如何表现?目前我有 1 个。

谢谢

最佳答案

specflow 中的步骤是全局的,不需要通过继承来重用步骤。事实上,如果您确实继承了步骤类,那么它们包含的步骤最终会被重复,并且您会在此处看到问题。参见 this answer了解更多详情。

简单的解决方案是将 [BeforeScenario] 方法放入它们自己的类中,并且不要让您的步骤类继承它。如果您需要在步骤和前后场景之间共享状态,请使用状态共享技术之一 outlined here

关于c# - 为什么我的 Specflow [AfterTestRun] Hook 被调用两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36339517/

相关文章:

asp.net - 如何测试出现在不同页面上的两个数字?

node.js - 使用 chai 和 mocha 在 nodejs 中对 Observable 结果进行简单测试

selenium - 在 Selenium 中自动执行 "Browse"按钮事件

c# - 如何在c#中使用IQueryable在动态查询中搜索日期

c# - .NET 远程处理,为什么列表不可远程处理?

ruby-on-rails-3 - 关于 capybara 的几个问题

java - Selenium click方法统一

maven-plugin - SoapUI Maven 插件——执行多个项目

c# - 在 Silverlight 5 中使用动态 JSON - 不工作

c# - WPF ModelVisual3D 的可见 2D 内容边界