问题描述
是否有人在使用 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__
流程:
- 创建一个 Semaphore 的命名实例
- createNew == true 所在的线程是第一个进入代码的线程 - 在这里执行测试运行初始化代码
- 对于其他线程,使用具有适当超时的方法“WaitOne”
最好的问候, 下午