SpecFlow + Несоответствие целевого значения при параллельной работе - PullRequest
0 голосов
/ 04 мая 2020

Это известная проблема (по крайней мере, в 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 Любая помощь будет высоко ценится!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...