问题描述
在Specflow中与SharedAppDomain线程隔离并行执行测试时,是否可以在每个特定线程之前和之后执行代码?
我为此目的使用的是BeforeTestRun / AfterTestRun Hooks,但是似乎从最后一个Specflow版本开始,这仅在运行测试“ AppDomain”线程隔离时才可行,而在SharedAppDomain隔离中,每个测试仅运行一次。
解决方法
如果并行运行测试,则每个线程将代表一个正在运行的方案。要在每种情况下运行某些操作,可以使用AfterScenario
钩子。
BeforeTestRun / AfterTestRun用于整个测试运行,其中可能正在运行多个线程。它们被设计为可以在所有线程上运行一次,但是我发现AfterTestRun
是修补程序。有时似乎无法确定最后一个正在运行的线程在进入AfterTestRun
之前是否已完成。