[AfterTestRun]
我的这个钩子被调用了两次。
我的C#代码是正确的,在每个场景结束时,我将把结果保存到并发包中。
然后我使用[AfterTestRun]钩子调用Concurrent Bag并将数据保存到数据库中。我看到重复的数据,所以我认为它被调用了两次。
其他信息:
我正在使用SpecRun与以下配置文件并行运行我的测试
执行stopAfterFailures="1"retryCount="0"testThreadCount="3"testSchedulingMode="Sequential"
安装的软件包
SpecFlow 2.0.0版
SpecRun.SpecFlow 1.3.0
SpecRun.Runner 1.3.0
我正在使用SpecRun.SpecFlow来运行我的测试
此外,如果每个特性中都有多个场景,那么这个钩子将如何表现?目前我有1个。
感谢
步骤在规范中是全局的,不需要继承来获得步骤重用。事实上,如果您确实继承了步骤类,那么它们包含的步骤最终会被复制,您可以在这里看到问题。有关其他详细信息,请参阅此答案。
简单的解决方案是将[BeforeScenario]
方法放置到它们自己的类中,并且不要让步骤类继承它。如果您需要在步骤和之前/之后的场景之间共享状态,请使用此处概述的状态共享技术之一