SpecFlow Параллельное выполнение в одном или нескольких тестовых агентах - PullRequest
0 голосов
/ 30 января 2019

Как выполнить параллельный тестовый поток спецификации для одного и того же агента тестирования с помощью теста MS

1 Ответ

0 голосов
/ 30 января 2019

У вас есть два варианта:

Атрибут сборки

Этот вариант подходит, если у вас есть только одна тестовая сборка и код может быть изменен.
Если вы можетедобавьте ниже атрибут сборки в любом месте вашей сборки (например, в файле properties.cs или в любом файле класса теста), вы должны иметь возможность запускать тесты specflow паралельно.

[assembly: Parallelize(Workers = 0, Scope = ExecutionScope.MethodLevel)]

настройки файла .runsettings

Если у вас есть несколько тестовых сборок, которые вы хотите разбить на части, вы можете создать файл с именем .runsettings в корне решения:

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <MSTest>
    <Parallelize>
      <Workers>8</Workers>
      <Scope>MethodLevel</Scope>
    </Parallelize>
  </MSTest>
</RunSettings>

Существует 3 области действияраспараллеливание:

(1) ClassLevel - каждый поток выполняет тесты класса TestClass.Внутри TestClass методы тестирования выполняются последовательно.Это значение по умолчанию - тесты внутри класса могут иметь взаимозависимость, и мы не хотим быть слишком агрессивными.

(2) MethodLevel - каждый поток выполняет TestMethod.

(3) Custom - пользователь может предоставить плагин, реализующий необходимую семантику выполнения.В настоящее время это еще не поддерживается, но упоминается, потому что - как и все MSTest V2 - мы разработали эту функцию с учетом расширяемости.

См. этот блог для получения более подробной информации

...