Я видел здесь вопрос Как выполнить до и после тестового запуска только один раз при параллельном выполнении specflow - хотя я не могу понять, как запустить хуки только один раз параллельно
Я использую Specflow + Runner в качестве поставщика тестов, количество моих потоков равно 3, у меня есть ловушка BeforeTestRun, которая создает мои тестовые данные, я хочу выполнить эту ловушку только один раз, но по умолчанию запускается BeforeTestRun в каждом потоке я также рассмотрел пример здесь: https://github.com/SpecFlowOSS/SpecFlow.Plus.Examples/tree/master/CustomDeploymentSteps,
Но я не уверен, как это работает, может ли кто-нибудь помочь мне в этом.
[BeforeTestRun()]
public static void BeforeTestRun()
{
Console.WriteLine("test");
}
Результат:
test
test
test
Мой профиль Default.srprofile выглядит так
<?xml version="1.0" encoding="utf-8"?>
<TestProfile xmlns="http://www.specflow.org/schemas/plus/TestProfile/1.5">
<Settings projectName="TestAutoProject" />
<Execution stopAfterFailures="2" testThreadCount="3" testSchedulingMode="Sequential" />
<TestAssemblyPaths>
<TestAssemblyPath>Test.dll</TestAssemblyPath>
</TestAssemblyPaths>
<Targets>
<Target name="IE">
<Filter>Browser_IE</Filter>
<DeploymentTransformationSteps>
<EnvironmentVariable variable="Test_Browser" value="IE" />
</DeploymentTransformationSteps>
</Target>
<Target name="Chrome">
<Filter>Browser_Chrome</Filter>
<DeploymentTransformationSteps>
<EnvironmentVariable variable="Test_Browser" value="Chrome" />
</DeploymentTransformationSteps>
</Target>
<Target name="Firefox">
<Filter>Browser_Firefox</Filter>
<DeploymentTransformationSteps>
<EnvironmentVariable variable="Test_Browser" value="Firefox" />
</DeploymentTransformationSteps>
</Target>
</Targets>
<DeploymentTransformation>
<Steps></Steps>
</DeploymentTransformation>
</TestProfile>