Это известная проблема (по крайней мере, в Net Core, я думаю).
Я пытаюсь использовать функциональность целей SpecFlow +, как описано здесь .
После реализации в .srprofile я вижу, что один тест разбивается на две разные копии в VisualStudio в зависимости от целей (в моем случае: Chrome, IE). Цели выбираются идеально, когда я запускаю тесты в Однопоточном Но когда я запускаю более одного потока, цели одного типа.
Например, если я запускаю тесты в двух потоках, выбираются следующие цели:
1) Chrome, Chrome as opposed to Chrome, IE.
(or)
2) IE, IE as opposed to Chrome, IE.
Мой default.srprofile:
<?xml version="1.0" encoding="utf-8"?>
<TestProfile xmlns="http://www.specflow.org/schemas/plus/TestProfile/1.5">
<Settings projectName="UIAutomation" />
<Execution testThreadCount="1" retryCount="2" />
<Environment testThreadIsolation="Process"/>
<Report>
<Template name="ReportTemplate.cshtml" outputName="UIReport{now:yyyy-MM-ddThhmmss}.html"/>
</Report>
<Targets>
<Target name="Chrome">
<Filter>@Chrome</Filter>
<DeploymentTransformationSteps>
<EnvironmentVariable variable="deviceType" value="Chrome" />
</DeploymentTransformationSteps>
</Target>
<Target name="IE">
<Filter>@IE</Filter>
<DeploymentTransformationSteps>
<EnvironmentVariable variable="deviceType" value="IE" />
</DeploymentTransformationSteps>
</Target>
</Targets>
<TestThreads>
<TestThread id="0">
<TestAffinity>@Chrome</TestAffinity>
</TestThread>
<TestThread id="1">
<TestAffinity>@IE</TestAffinity>
</TestThread>
</TestThreads>
<TestAssemblyPaths>
<TestAssemblyPath>UIAutomation.dll</TestAssemblyPath>
</TestAssemblyPaths>
</TestProfile>
Итак, я пробовал следующее:
1) Значения переменных среды TestthreadIsolation как Process и SharedAppDomain.
2) Использование фильтров для запуска тестов на правильных целях.
3) I попытался запустить официальный образец SpecFlow project . Мне удалось воспроизвести ту же проблему.
4) Также я попытался использовать ловушки [BeforeTestRun] и [AfterTestRun], как предлагалось здесь .
Я также прочитал следующие ссылки:
Specflow + Community1
Specflow + Community2
Stackoverflow
В сообществе SpecRun Google+ кажется, что по крайней мере 4 или 5 потоков основаны на этой проблеме, но эти решения не работают для меня. Или я должен перейти к. NET Framework вместо. NET Core Любая помощь будет высоко ценится!