Как реализовать параллельное выполнение с использованием Specrun для NUnit

#nunit #specflow #specrun

#nunit #specflow #specrun

Вопрос:

Я установил следующие NuGets: Specflow.Nunit, specflow ,Specrun.Nunit вместе с NUnit 2.6.3. Я пытаюсь выполнить runtests.cmd (автоматически сгенерированный specrun.nunit), но я получаю следующую ошибку:

TechTalk.SpecRun.Framework.SpecRunException: по крайней мере, один тестовый поток прерван. —> System.Отражение.TargetInvocationException: исключение было вызвано целью вызова. —> System.MissingMethodException: метод не найден: ‘Аннулировать TechTalk.SpecRun.SpecRunner.Инициализировать ()’. Мой файл default.srprofile содержит:

   <?xml version="1.0" encoding="utf-8"?>
    <TestProfile xmlns="http://www.specrun.com/schemas/2011/09/TestProfile">
      <Settings projectName="<PROJECTNAME>" projectId="{------}" />
      <Execution stopAfterFailures="3" testThreadCount="2" testSchedulingMode="Sequential" />
      <!-- For collecting by a SpecRun server update and enable the following element. For using the 
          collected statistics, set testSchedulingMode="Adaptive" attribute on the <Execution> element.
        <Server serverUrl="http://specrunserver:6365" publishResults="true" />
      -->
      <TestAssemblyPaths>
        <TestAssemblyPath>projectname.dll</TestAssemblyPath>
      </TestAssemblyPaths>
      <DeploymentTransformation>
        <Steps>`enter code here`
          <!-- sample config transform to change the connection string-->
          <!--<ConfigFileTransformation configFile="App.config">
            <Transformation>
              <![CDATA[<?xml version="1.0" encoding="utf-8"?>
                                <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
                    <connectionStrings>
                      <add name="MyDatabase" connectionString="Data Source=.;Initial Catalog=MyDatabaseForTesting;Integrated Security=True" 
                           xdt:Locator="Match(name)" xdt:Transform="SetAttributes(connectionString)" />
                    </connectionStrings>
                                </configuration>
                            ]]>
            </Transformation>
          </ConfigFileTransformation>-->
        </Steps>
      </DeploymentTransformation>
    </TestProfile>
 

Также в окне вывода VS я получаю эту ошибку :
Не удалось загрузить файл или сборку ‘TechTalk.SpecRun, Version = 1.3.0.76, Culture = neutral, PublicKeyToken = d0fc5cc18b3b389b’ или одну из его зависимостей. Система не может найти указанный файл.
Может кто-нибудь, пожалуйста, помочь мне с этим?

Комментарии:

1. Я думаю, что теги selenium и bdd здесь не нужны, никакие эксперты selenium или bdd, вероятно, не смогут помочь с этой конкретной проблемой specrun

2. Не могли бы вы опубликовать точные версии ваших пакетов NuGet и некоторые из вашего тестового кода?

3. @AndreasWillich Я смог это решить, были некоторые конфликты в версиях. Теперь я могу запускать сценарии параллельно. Можем ли мы запускать файлы компонентов параллельно? На данный момент у меня есть много файлов функций, и потоки подбирают сценарии случайным образом. Но я хочу, чтобы потоки выполняли функции параллельно. Также я использую ознакомительную версию SpecRun. Есть ли какие-либо ограничения по дням или это просто задержка, которая вводится?

4. @NRT: Почему вы хотите выполнять функции параллельно? Функция — это набор сценариев. В чем разница между параллельным запуском функции или параллельным запуском всех сценариев в ней? Ознакомительная версия полностью функциональна. Это только добавляет задержку в начале выполнения. Но лучше всего мы обсудим это на доске SpecFlow : groups.google.com/forum /#!форум/specrun

Ответ №1:

Вы бы изменили эти строки:

       <RelocateConfigurationFile target="CustomConfig.{TestThreadId}.config" />
      <ConfigFileTransformation configFile="App.config">
 

Полный ответ:
https://github.com/techtalk/SpecFlow/issues/954