3

[后测试运行]

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

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

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

附加信息:
我正在使用 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个。

谢谢

4

1 回答 1

1

步骤在规范流中是全局的,不需要继承来重用步骤。实际上,如果您确实继承了步骤类,那么它们包含的步骤最终会被重复,您会在这里看到问题。有关更多详细信息,请参阅此答案

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

于 2016-04-19T17:53:54.893 回答