如何在并行执行specflow时仅在测试运行之前和之后执行一次

2023-12-26

我必须在测试执行之前和之后运行数据库脚本,但是如果我在测试运行之前提到它会为每个线程运行多次,但我只需要在测试执行中运行一次意味着它会成为所有线程的顶部

例如: 挂钩文件

[BeforeTestRun]
public static void BeforeTestrun()
{
    Console.WriteLine("run before test");
}

[AfterTestRun]
public static void AfterTestrun()
{
    Console.WriteLine("run after test");
}

在默认.sr配置文件中 线程数=3

运行构建时,其显示如下

  • Thread0:“测试前运行”
  • 线程1:“测试前运行”
  • 线程2:“测试前运行”
  • Thread0:“测试后运行”
  • 线程1:“测试后运行”
  • 线程2:“测试后运行”

但我必须在所有线程之上和所有线程之后只运行一次


如果您使用 SpecFlow+Runner 且测试线程隔离模式为Process or AppDomain执行BeforeTestRun and AfterTestRun每个线程都会发生钩子。

这是预期的行为。其原因是这些隔离模式下线程之间的内存隔离。

要在整个测试运行中只执行一次某些内容,您必须使用自己的部署步骤。一个例子在这里:https://github.com/SpecFlowOSS/SpecFlow.Plus.Examples/tree/master/CustomDeploymentSteps https://github.com/SpecFlowOSS/SpecFlow.Plus.Examples/tree/master/CustomDeploymentSteps

如果其他测试运行者或在SharedAppDomain,请在 GitHub 上打开问题。


全面披露:我是 SpecFlow 和 SpecFlow+ 的开发人员之一。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在并行执行specflow时仅在测试运行之前和之后执行一次 的相关文章

随机推荐

  • 如何解决这些 Git GC 问题?

    我有一个反复出现的问题 我的 git 存储库 我认为 将决定它需要垃圾收集 此过程需要半个多小时 然后将在每次拉 推操作时触发 手动运行 Git GC 需要半个小时 但似乎并不能解决问题 我找到的唯一解决方案是删除我的存储库并重新克隆 由于
  • Bigquery sql:将 json 的键替换为列中存在的新值

    我在 Big Query 中有两个表 如图所示 table 1 有 id json 格式的属性 集合列 table 2 有 collection property key property name 列 我想将 table 1 中的属性列中
  • 使用 JSON 响应自动完成文本字段

    我想要的是 我想在我的应用程序中使用文本字段的自动完成 由于我的数据来自网络服务 我想使用 JSON 响应执行 自动完成 我知道的 我知道首先我必须从网络服务获取数据 然后我需要解析它并用解析后的数据填充数组 然后我可以使用该数组执行自动完
  • web.api 的 404 选项

    我已按照在 web api 中启用 cors 的常规步骤进行操作 但在 Chrome 和 Firefox 中收到对 OPTIONS 请求的 404 响应Cross Origin Request Blocked The Same Origin
  • 多对多关系以确定用户是否喜欢某个帖子

    我有一个包含所有帖子的表 我还有一个表 当用户喜欢带有外键 user id 和 post id 的帖子时 会在其中添加一行 我想检索一个列表ALL帖子的数量以及特定用户是否喜欢该帖子 使用外部连接 我最终得到了一些帖子两次 一次用于用户 1
  • 如何在 GitHub 上拥有带有公共问题跟踪器的私有存储库?

    我将向社区发布我的应用程序的一些测试版 项目存储在 GitHub 上的私有存储库中 我希望允许该社区报告错误并将其直接放在 GitHub 问题选项卡上 GitHub 目前尚未提供该选项 您知道如何覆盖此流程吗 截至 2019 年 9 月 不
  • Android ListView 不展开整个屏幕?

    我有以下活动
  • 如何更改导航视图项目文本大小?

    Google 最近发布 http android developers blogspot com au 2015 05 android design support library html the android support desi
  • 整数类型的最大值是否有常数?

    我正在为 VBA 代码寻找 c 中像 MAXINT 这样的常量 我只找到了其他语言的参考资料 找不到 VBA 的参考资料 如果没有这样的常量 VBA 中 int 可以容纳的最大数字是多少 我尝试了 2147483647 但出现溢出错误 VB
  • Firebase 自定义声明未在规则中更新[重复]

    这个问题在这里已经有答案了 我试图防止存储滥用 我的目标是限制每天的用户上传操作 因此 我部署了一个存储 onFinalize 触发器 一旦文件上传 该函数就会检测到使用 firestore 是否达到限制的计数器 如果是 将毫秒存储到 Cu
  • 基元/对象声明,默认初始化值

    声明基元 对象时 它们是否已初始化 哪些是默认值 行为是什么班级成员 and 当地领域 类成员的对象声明怎么样 如下回答 这些是默认值 Data Type Default Value for fields byte 0 short 0 in
  • 使用双值识别 SwiftUI TextField 中的更改

    我正在使用 TextField 让用户添加某物的价格 为了防止用户添加其他值作为数字 我将键盘类型更改为 decimalPad The stringValue每次角色更改时都会正确更新绑定 我现在的问题是doubleValue仅当用户按下回
  • JSP 中的美元大括号 ${} 是什么意思?

    什么是 在JSP中意味着什么 例如
  • ASP.NET动态添加列到Gridview

    如何根据条件动态向 GridView 添加一些列
  • 学习 HTML5 和 CSS3 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 想象一下今天 即 2011 年 3 月 1 日 某人从未编写过网页 并且想知道他们应该阅读哪些内容才能
  • 如何将 PyTorch 张量转换为 C++ torch::Tensor 反之亦然?

    我想使用 pybind11 在 C 模块中接收包含 PyTorch Tensor 的字典 并返回经过一些修改的结果字典 其中包含 C torch Tensor 返回 据我所知 似乎没有明确的方法将 PyTorch Tensor 转换为 C
  • 是否可以在 OS X 中设置 pthread CPU 关联性?

    In Linux有一个sched setaffinity 函数定义在sched h 但我似乎找不到类似的东西Mac OS X 10 6 pthreads实现 如果无法设置亲和力 则默认策略是什么OS X Mac OS X 有线程亲和性API
  • C 头文件中的内联函数[重复]

    这个问题在这里已经有答案了 我试图在网上搜索一个好的答案 但未能找到一个我可以完全理解的答案 假设我有一个标头 add h inline int add int a int b return a b 名为 adddouble c 的文件 i
  • 帮我完成这个 SQL 查询

    我有一个 SQL Server CE 3 5 表 交易 具有以下架构 ID 交易日期 Category 描述 Amount Query SELECT Transaction Date SUM Amount FROM Transactions
  • 如何在并行执行specflow时仅在测试运行之前和之后执行一次

    我必须在测试执行之前和之后运行数据库脚本 但是如果我在测试运行之前提到它会为每个线程运行多次 但我只需要在测试执行中运行一次意味着它会成为所有线程的顶部 例如 挂钩文件 BeforeTestRun public static void Be