gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 17:38:47 24 4
gpt4 key购买 nike

[测试运行后]

这个钩子(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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com