我正在研究使用NUnit并行运行SpecFlow方案,并希望对do_something
和master
挂钩进行一些说明。 SpecFlow文档指出,如果来自同一功能的两个方案并行运行,则这些挂钩可能会多次运行。我的意思是说它们必须安全执行多次,但是还不清楚它们是否需要线程安全。
来自文档:
每个线程管理自己的进入/退出功能执行工作流程。的 [BeforeFeature]和[AfterFeature]挂钩可以多次执行 如果不同线程运行以下场景,则在不同线程中的时间 相同的功能文件。这些钩子的执行不会阻塞一个 另一个,但是Before / After功能挂钩在其中成对调用 一个线程(下一个方案的[BeforeFeature]钩子仅 在上一个的[AfterFeature]挂钩之后执行)。每 线程具有一个单独的(且独立的)FeatureContext。
https://specflow.org/documentation/Parallel-Execution/
我对此的解释是,功能钩子对于多次执行和线程安全必须是安全的。这是正确的吗?