[AfterTestRun]
我的这个钩子被叫了两次。
我的C#代码是正确的,并且在每个 Scenario 的末尾我将结果保存到Concurrent Bag。
然后我使用 [AfterTestRun] 挂钩来调用Concurrent Bag并将数据保存到数据库中。我看到重复的数据,所以我认为它被调用了两次。
其他信息:
我正在使用SpecRun与以下配置文件并行运行我的测试
执行stopAfterFailures =" 1" RetryCount重=" 0" testThreadCount =" 3" testSchedulingMode ="序列"
已安装的软件包
SpecFlow版本2.0.0
SpecRun.SpecFlow 1.3.0
SpecRun.Runner 1.3.0
我正在使用SpecRun.SpecFlow来运行我的测试。
此外,如果每个功能中有多个场景,此挂钩将如何表现?目前我有1个。
由于
答案 0 :(得分:1)
步骤在specflow中是全局的,继承以获得步骤重用是不必要的。实际上,如果你继承了步骤类,那么它们包含的步骤最终会被复制,你会看到这里遇到的问题。有关其他详细信息,请参阅this answer。
简单的解决方案是将[BeforeScenario]
方法放入它们自己的类中,并且不要让步骤类继承它。如果您需要在步骤和之前/之后的方案之间共享状态,请使用其中一种状态共享技术outlined here