在 Specflow Runner 上运行一次 BeforeTestRun/AfterTestRun

问题描述

是否有人在使用 AppDomain 的多线程上使用 Specflow 运行器时成功设置了 beforetestrun/aftertestrun 挂钩 我从这个帖子中看到了一些答案 - Run BeforeTestRun and AfterTestRun only once using specflow with Selenium

不幸的是,我很难设置它,因为我们需要它来配置我们的 TestRail 集成。

解决方法

这是可能的 - 您必须使用基于内核的锁(以下构造函数是要使用的): https://docs.microsoft.com/en-us/dotnet/api/system.threading.semaphore.-ctor?view=net-5.0#System_Threading_Semaphore__ctor_System_Int32_System_Int32_System_String_System_Boolean__

流程:

  1. 创建一个 Semaphore 的命名实例
  2. createNew == true 所在的线程是第一个进入代码的线程 - 在这里执行测试运行初始化代码
  3. 对于其他线程,使用具有适当超时的方法“WaitOne”

最好的问候, 下午

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...