Поделиться через


VSTest@2 — задача Visual Studio Test v2

Используйте эту задачу для выполнения модульных и функциональных тестов (Selenium, Appium, Coded UI test и т. д.) с помощью средства выполнения Visual Studio Test (VSTest). Вы можете запускать тестовые платформы, у которых есть тестовый адаптер Visual Studio. Примерами фреймворков являются MSTest, xUnit, NUnit, Chutzpah (для тестов JavaScript с использованием QUnit, Mocha и Jasmine) и т.д. С помощью этой задачи тесты могут быть распределены на нескольких агентах.

Замечание

VSTest@3 — это самая новая версия задачи, которую следует использовать в воронках продаж.

Замечание

Задача VSTest Azure специфична для VSTest-platform. Он не поддерживает более новую версию Microsoft.Testing.Platform (MTP).

Синтаксис

# Visual Studio Test v2
# Build, test, package, or publish a .NET application, or run a custom .NET CLI command.
- task: VSTest@2
  inputs:
  # Test selection
    testSelector: 'testAssemblies' # 'testAssemblies' | 'testPlan' | 'testRun'. Required. Select tests using. Default: testAssemblies.
    testAssemblyVer2: # string. Required when testSelector = testAssemblies. Test files. 
    #testPlan: # string. Required when testSelector = testPlan. Test plan. 
    #testSuite: # string. Required when testSelector = testPlan. Test suite. 
    #testConfiguration: # string. Required when testSelector = testPlan. Test configuration. 
    #tcmTestRun: '$(test.RunId)' # string. Optional. Use when testSelector = testRun. Test Run. Default: $(test.RunId).
    searchFolder: '$(System.DefaultWorkingDirectory)' # string. Required. Search folder. Default: $(System.DefaultWorkingDirectory).
    #resultsFolder: '$(Agent.TempDirectory)\TestResults' # string. Test results folder. Default: $(Agent.TempDirectory)\TestResults.
    #testFiltercriteria: # string. Optional. Use when testSelector = testAssemblies. Test filter criteria. 
    #runOnlyImpactedTests: False # boolean. Optional. Use when testSelector = testAssemblies. Run only impacted tests. Default: False.
    #runAllTestsAfterXBuilds: '50' # string. Optional. Use when testSelector = testAssemblies && runOnlyImpactedTests = true. Number of builds after which all tests should be run. Default: 50.
    #uiTests: false # boolean. Test mix contains UI tests. Default: false.
  # Execution options
    #vstestLocationMethod: 'version' # 'version' | 'location'. Select test platform using. Default: version.
    #vsTestVersion: 'latest' # 'latest' | '17.0' | '16.0' | '15.0' | '14.0' | 'toolsInstaller'. Optional. Use when vstestLocationMethod = version. Test platform version. Default: latest.
    #vstestLocation: # string. Optional. Use when vstestLocationMethod = location. Path to vstest.console.exe. 
    #runSettingsFile: # string. Settings file. 
    #overrideTestrunParameters: # string. Override test run parameters. 
    #pathtoCustomTestAdapters: # string. Path to custom test adapters. 
    #runInParallel: False # boolean. Run tests in parallel on multi-core machines. Default: False.
    #runTestsInIsolation: False # boolean. Run tests in isolation. Default: False.
    #codeCoverageEnabled: False # boolean. Code coverage enabled. Default: False.
    #otherConsoleOptions: # string. Other console options. 
    #diagnosticsEnabled: false # boolean. Collect advanced diagnostics in case of catastrophic failures. Default: false.
    #collectDumpOn: 'onAbortOnly' # 'onAbortOnly' | 'always' | 'never'. Optional. Use when diagnosticsEnabled = true. Collect process dump and attach to test run report. Default: onAbortOnly.
    #rerunFailedTests: False # boolean. Rerun failed tests. Default: False.
    #rerunType: 'basedOnTestFailurePercentage' # 'basedOnTestFailurePercentage' | 'basedOnTestFailureCount'. Optional. Use when rerunFailedTests = true. Do not rerun if test failures exceed specified threshold. Default: basedOnTestFailurePercentage.
    #rerunFailedThreshold: '30' # string. Optional. Use when rerunFailedTests = true && rerunType = basedOnTestFailurePercentage. % failure. Default: 30.
    #rerunFailedTestCasesMaxLimit: '5' # string. Optional. Use when rerunFailedTests = true && rerunType = basedOnTestFailureCount. # of failed tests. Default: 5.
    #rerunMaxAttempts: '3' # string. Optional. Use when rerunFailedTests = true. Maximum # of attempts. Default: 3.
  # Advanced execution options
    #distributionBatchType: 'basedOnTestCases' # 'basedOnTestCases' | 'basedOnExecutionTime' | 'basedOnAssembly'. Batch tests. Default: basedOnTestCases.
    #batchingBasedOnAgentsOption: 'autoBatchSize' # 'autoBatchSize' | 'customBatchSize'. Optional. Use when distributionBatchType = basedOnTestCases. Batch options. Default: autoBatchSize.
    #customBatchSizeValue: '10' # string. Required when distributionBatchType = basedOnTestCases && batchingBasedOnAgentsOption = customBatchSize. Number of tests per batch. Default: 10.
    #batchingBasedOnExecutionTimeOption: 'autoBatchSize' # 'autoBatchSize' | 'customTimeBatchSize'. Optional. Use when distributionBatchType = basedOnExecutionTime. Batch options. Default: autoBatchSize.
    #customRunTimePerBatchValue: '60' # string. Required when distributionBatchType = basedOnExecutionTime && batchingBasedOnExecutionTimeOption = customTimeBatchSize. Running time (sec) per batch. Default: 60.
    #dontDistribute: False # boolean. Replicate tests instead of distributing when multiple agents are used in the job. Default: False.
  # Reporting options
    #testRunTitle: # string. Test run title. 
    #platform: # string. Build platform. 
    #configuration: # string. Build configuration. 
    #publishRunAttachments: true # boolean. Upload test attachments. Default: true.
    #failOnMinTestsNotRun: False # boolean. Fail the task if a minimum number of tests are not run. Default: False.
    #minimumExpectedTests: '1' # string. Optional. Use when failOnMinTestsNotRun = true. Minimum # of tests. Default: 1.
# Visual Studio Test v2
# Build, test, package, or publish a .NET application, or run a custom .NET CLI command.
- task: VSTest@2
  inputs:
  # Test selection
    testSelector: 'testAssemblies' # 'testAssemblies' | 'testPlan' | 'testRun'. Required. Select tests using. Default: testAssemblies.
    testAssemblyVer2: # string. Required when testSelector = testAssemblies. Test files. 
    #testPlan: # string. Required when testSelector = testPlan. Test plan. 
    #testSuite: # string. Required when testSelector = testPlan. Test suite. 
    #testConfiguration: # string. Required when testSelector = testPlan. Test configuration. 
    #tcmTestRun: '$(test.RunId)' # string. Optional. Use when testSelector = testRun. Test Run. Default: $(test.RunId).
    searchFolder: '$(System.DefaultWorkingDirectory)' # string. Required. Search folder. Default: $(System.DefaultWorkingDirectory).
    #resultsFolder: '$(Agent.TempDirectory)\TestResults' # string. Test results folder. Default: $(Agent.TempDirectory)\TestResults.
    #testFiltercriteria: # string. Optional. Use when testSelector = testAssemblies. Test filter criteria. 
    #runOnlyImpactedTests: False # boolean. Optional. Use when testSelector = testAssemblies. Run only impacted tests. Default: False.
    #runAllTestsAfterXBuilds: '50' # string. Optional. Use when testSelector = testAssemblies && runOnlyImpactedTests = true. Number of builds after which all tests should be run. Default: 50.
    #uiTests: false # boolean. Test mix contains UI tests. Default: false.
  # Execution options
    #vstestLocationMethod: 'version' # 'version' | 'location'. Select test platform using. Default: version.
    #vsTestVersion: 'latest' # 'latest' | '16.0' | '15.0' | '14.0' | 'toolsInstaller'. Optional. Use when vstestLocationMethod = version. Test platform version. Default: latest.
    #vstestLocation: # string. Optional. Use when vstestLocationMethod = location. Path to vstest.console.exe. 
    #runSettingsFile: # string. Settings file. 
    #overrideTestrunParameters: # string. Override test run parameters. 
    #pathtoCustomTestAdapters: # string. Path to custom test adapters. 
    #runInParallel: False # boolean. Run tests in parallel on multi-core machines. Default: False.
    #runTestsInIsolation: False # boolean. Run tests in isolation. Default: False.
    #codeCoverageEnabled: False # boolean. Code coverage enabled. Default: False.
    #otherConsoleOptions: # string. Other console options. 
    #diagnosticsEnabled: false # boolean. Collect advanced diagnostics in case of catastrophic failures. Default: false.
    #collectDumpOn: 'onAbortOnly' # 'onAbortOnly' | 'always' | 'never'. Optional. Use when diagnosticsEnabled = true. Collect process dump and attach to test run report. Default: onAbortOnly.
    #rerunFailedTests: False # boolean. Rerun failed tests. Default: False.
    #rerunType: 'basedOnTestFailurePercentage' # 'basedOnTestFailurePercentage' | 'basedOnTestFailureCount'. Optional. Use when rerunFailedTests = true. Do not rerun if test failures exceed specified threshold. Default: basedOnTestFailurePercentage.
    #rerunFailedThreshold: '30' # string. Optional. Use when rerunFailedTests = true && rerunType = basedOnTestFailurePercentage. % failure. Default: 30.
    #rerunFailedTestCasesMaxLimit: '5' # string. Optional. Use when rerunFailedTests = true && rerunType = basedOnTestFailureCount. # of failed tests. Default: 5.
    #rerunMaxAttempts: '3' # string. Optional. Use when rerunFailedTests = true. Maximum # of attempts. Default: 3.
  # Advanced execution options
    #distributionBatchType: 'basedOnTestCases' # 'basedOnTestCases' | 'basedOnExecutionTime' | 'basedOnAssembly'. Batch tests. Default: basedOnTestCases.
    #batchingBasedOnAgentsOption: 'autoBatchSize' # 'autoBatchSize' | 'customBatchSize'. Optional. Use when distributionBatchType = basedOnTestCases. Batch options. Default: autoBatchSize.
    #customBatchSizeValue: '10' # string. Required when distributionBatchType = basedOnTestCases && batchingBasedOnAgentsOption = customBatchSize. Number of tests per batch. Default: 10.
    #batchingBasedOnExecutionTimeOption: 'autoBatchSize' # 'autoBatchSize' | 'customTimeBatchSize'. Optional. Use when distributionBatchType = basedOnExecutionTime. Batch options. Default: autoBatchSize.
    #customRunTimePerBatchValue: '60' # string. Required when distributionBatchType = basedOnExecutionTime && batchingBasedOnExecutionTimeOption = customTimeBatchSize. Running time (sec) per batch. Default: 60.
    #dontDistribute: False # boolean. Replicate tests instead of distributing when multiple agents are used in the job. Default: False.
  # Reporting options
    #testRunTitle: # string. Test run title. 
    #platform: # string. Build platform. 
    #configuration: # string. Build configuration. 
    #publishRunAttachments: true # boolean. Upload test attachments. Default: true.
    #failOnMinTestsNotRun: False # boolean. Fail the task if a minimum number of tests are not run. Default: False.
    #minimumExpectedTests: '1' # string. Optional. Use when failOnMinTestsNotRun = true. Minimum # of tests. Default: 1.

Входные данные

testSelector - Выбор тестов с помощью
string. Обязательное. Допустимые значения: testAssemblies (Тестовые сборки), testPlan (План тестирования), testRun (Тестовый прогон). Значение по умолчанию: testAssemblies.

  • Тестовая сборка: Указывает одну или несколько тестовых сборок, содержащих тесты. При необходимости можно указать критерии фильтра, чтобы выбрать только определенные тесты.
  • План тестирования: Выполняет тесты из плана тестирования, с которыми связан метод автоматического тестирования. Дополнительные сведения о том, как связать тесты с рабочим элементом тестового случая, см. в разделе Связывание автоматических тестов с тестовыми случаями.
  • Тестовый запуск: Используйте этот параметр при настройке среды для выполнения тестов на основе планов тестирования. Этот параметр не следует использовать при выполнении тестов в конвейере непрерывной интеграции и непрерывного развертывания (CI/CD).

testAssemblyVer2 - Тестовые файлы
string. Требуется, если testSelector = testAssemblies. Значение по умолчанию: **\bin\**\*test.dll\n**\bin\**\*tests.dll.

Запускает тесты из указанных файлов. Упорядоченные тесты и веб-тесты можно запустить, указав .orderedtest файлы и .webtest соответственно. Для запуска .webtestтребуется Visual Studio 2017 Update 4 или более поздней версии. Пути к файлам указываются относительно папки поиска. Этот ввод поддерживает несколько строк шаблонов мини-соответствия.

# Example
- task: VSTest@2
  inputs:
    testSelector: 'testAssemblies'
    testAssemblyVer2: |
      **\*test*.dll
      !**\*TestAdapter.dll
      !**\obj\**

testAssemblyVer2 - Тестовые файлы
string. Требуется, если testSelector = testAssemblies. Значение по умолчанию: **\*test*.dll\n!**\*TestAdapter.dll\n!**\obj\**.

Запускает тесты из указанных файлов. Упорядоченные тесты и веб-тесты можно запустить, указав .orderedtest файлы и .webtest соответственно. Для запуска .webtestтребуется Visual Studio 2017 Update 4 или более поздней версии. Пути к файлам указываются относительно папки поиска. Этот ввод поддерживает несколько строк шаблонов мини-соответствия.

# Example
- task: VSTest@2
  inputs:
    testSelector: 'testAssemblies'
    testAssemblyVer2: |
      **\*test*.dll
      !**\*TestAdapter.dll
      !**\obj\**

testPlan - План испытаний
string. Требуется, если testSelector = testPlan.

Указывает план тестирования, содержащий наборы тестов с автоматическими тестовыми случаями.


testSuite - Набор тестов
string. Требуется, если testSelector = testPlan.

Указывает один или несколько наборов тестов, содержащих автоматические тестовые случаи. Рабочие элементы тестового случая должны быть связаны с автоматизированным методом тестирования.


testConfiguration - Тестовая конфигурация
string. Требуется, если testSelector = testPlan.

Указывает конфигурацию теста.


tcmTestRun - Тестовый прогон
string. Необязательно. Используется при testSelector = testRun. Значение по умолчанию: $(test.RunId).

Указывает выбор на основе тестового запуска, который используется при активации автоматических тестовых запусков из планов тестирования. Этот параметр нельзя использовать для выполнения тестов в конвейере CI/CD.


папки поиска searchFolder -
string. Обязательное. Значение по умолчанию: $(System.DefaultWorkingDirectory).

Указывает папку для поиска тестовых сборок.


resultsFolder - Папка с результатами теста
string. Значение по умолчанию: $(Agent.TempDirectory)\TestResults.

Указывает папку для хранения результатов теста. При использовании каталога по умолчанию он очищается в конце выполнения конвейера. Каталог результатов всегда будет очищен в начале vstest задачи перед запуском тестов. Относительный путь к папке, если он указан, будет считаться относительным к $(Agent.TempDirectory).


testFiltercriteria - Критерии тестового фильтра
string. Необязательно. Используется при testSelector = testAssemblies.

Задает дополнительные критерии для фильтрации тестов из тестовых сборок. Например: Priority=1|Name=MyTestMethod. Узнайте о параметрах командной строки.


runOnlyImpactedTests - Выполняйте только затронутые тесты
boolean. Необязательно. Используется при testSelector = testAssemblies. Значение по умолчанию: False.

Автоматически определяет и запускает тесты, необходимые для проверки изменения кода. Узнайте об использовании анализа воздействия теста.


runAllTestsAfterXBuilds - Количество сборок, после которых должны быть запущены все тесты
string. Необязательно. Используется при testSelector = testAssemblies && runOnlyImpactedTests = true. Значение по умолчанию: 50.

Указывает количество сборок, которые должны быть выполнены перед автоматическим запуском всех тестов. Test Impact Analysis хранит сопоставление между тестовыми случаями и исходным кодом. Рекомендуется повторно генерировать сопоставление, регулярно выполняя все тесты.


uiTests - Тестовый микс содержит тесты пользовательского интерфейса
boolean. Значение по умолчанию: false.

Чтобы выполнить тесты пользовательского интерфейса, убедитесь, что агент настроен на работу в интерактивном режиме с включенным автовходом . Настройка агента для интерактивного выполнения должна быть выполнена до постановки сборки/выпуска в очередь. Установка этого флажка не приводит к автоматической настройке агента в интерактивном режиме. Эта опция служит напоминанием о необходимости соответствующей настройки агента во избежание сбоев. Размещенные агенты Windows из пулов VS 2015 и 2017 можно использовать для выполнения тестов пользовательского интерфейса.


vstestLocationMethod - Выберите тестовую платформу с помощью
string. Допустимые значения: version, location (Конкретное местоположение). Значение по умолчанию: version.

Указывает, какую тестовую платформу следует использовать.


vsTestVersion - Версия тестовой платформы
string. Необязательно. Используется при vstestLocationMethod = version. Допустимые значения: latest, 17.0 (Visual Studio 2022), 16.0 (Visual Studio 2019), 15.0 (Visual Studio 2017), 14.0 (Visual Studio 2015), toolsInstaller (установлено установщиком средств). Значение по умолчанию: latest.

Указывает используемую версию Visual Studio Test. Если указан последний , то при этом будет выбрана последняя версия (из списка разрешенных значений), которая будет установлена. Чтобы выполнять тесты без использования Visual Studio в агенте, используйте параметр Устанавливается средствами установки. Обязательно включите задачу установщика тестовой платформы Visual Studio , чтобы получить тестовую платформу от NuGet.


vsTestVersion - Версия тестовой платформы
string. Необязательно. Используется при vstestLocationMethod = version. Допустимые значения: latest, 16.0 (Visual Studio 2019), 15.0 (Visual Studio 2017), 14.0 (Visual Studio 2015), toolsInstaller (Установлено установщиком средств). Значение по умолчанию: latest.

Указывает используемую версию Visual Studio Test. Если указан последний , то при этом будет выбрана последняя версия (из списка разрешенных значений), которая будет установлена. Чтобы выполнять тесты без использования Visual Studio в агенте, используйте параметр Устанавливается средствами установки. Обязательно включите задачу установщика тестовой платформы Visual Studio , чтобы получить тестовую платформу от NuGet.


vstestLocation - Путь к vstest.console.exe
string. Необязательно. Используется при vstestLocationMethod = location.

Указывает путь к VSTest.


runSettingsFile - Файл настроек
string.

Указывает путь к файлу или runsettingstestsettings для использования с тестами. Для Visual Studio 15.7 и более поздних версий используйте runsettings для всех типов тестов. Узнайте больше о преобразовании .testsettings файла в .runsettings файл.


overrideTestrunParameters - Переопределение параметров тестового прогона
string.

Переопределяет параметры, TestRunParameters определенные в разделе runsettings файла или Properties в разделе testsettings файла. Например: -key1 value1 -key2 value2. Заметка: Доступ к свойствам, указанным в файле testsettings , можно получить с TestContext помощью Visual Studio 2017 (обновление 4 или выше).


pathtoCustomTestAdapters - Путь к пользовательским тестовым адаптерам
string.

Указывает путь к каталогу для пользовательских тестовых адаптеров. Адаптеры, находящиеся в той же папке, что и тестовые сборки, обнаруживаются автоматически.


runInParallel - Параллельное выполнение тестов на многоядерных машинах
boolean. Значение по умолчанию: False.

Если задано значение true, тесты выполняются параллельно и используют доступные ядра машины. Это переопределит if, MaxCpuCount указанный в вашем runsettings файле. Узнайте больше о параллельном выполнении тестов.


runTestsInIsolation - Выполняйте тесты изолированно
boolean. Значение по умолчанию: False.

Выполняет тесты в изолированном процессе. Это, вероятно, приведет к меньшему количеству ошибок в процессе тестирования vstest.console.exe, но тесты могут выполняться медленнее. В настоящее время этот параметр нельзя использовать при работе с параметром задания с несколькими агентами.


codeCoverageEnabled - Покрытие кода включено
boolean. Значение по умолчанию: False.

Собирает сведения о покрытии кода из тестового запуска.


otherConsoleOptions - Другие варианты консолей
string.

Другие параметры консоли , которые можно передать в vstest.console.exe.

Эти параметры не поддерживаются и будут игнорироваться при выполнении тестов с использованием параметра Параллельность нескольких агентов задания агента, при выполнении тестов с использованием параметра План тестирования или Тестовый запуск , а также при выборе пользовательского параметра пакетной обработки. Вместо этого параметры можно указать с помощью файла настроек.


distributionBatchType - Периодические испытания
string. Допустимые значения: basedOnTestCases (На основе количества тестов и агентов), basedOnExecutionTime (На основе прошлого времени выполнения тестов basedOnAssembly ), (На основе тестовых сборок). Значение по умолчанию: basedOnTestCases.

Партия — это группа тестов. Пакет тестов выполняет свои тесты одновременно, и для него публикуются результаты. Если задание, в котором выполняется задача, настроено на использование нескольких агентов, каждый агент выбирает все доступные пакеты тестов для параллельного выполнения. Пакетную обработку можно запустить:

на основе количества тестов и агентов. Простое пакетирование на основе количества тестов и агентов, участвующих в тестовом прогоне.

На основе прошедшего времени выполнения тестов. При пакетной обработке учитывается прошедшее время выполнения для создания пакетов тестов, в которых каждый пакет имеет примерно одинаковое время выполнения.

на основе тестовых сборок. Тесты из сборки объединяются в пакеты.


batchingBasedOnAgentsOption - Варианты пакетов
string. Необязательно. Используется при distributionBatchType = basedOnTestCases. Допустимые значения: autoBatchSize (Автоматически определить размер партии), customBatchSize (Указать размер партии). Значение по умолчанию: autoBatchSize.

Указывает простую пакетную обработку на основе количества тестов и агентов, участвующих в тестовом запуске. Когда размер партии определяется автоматически, каждая партия содержит (total number of tests / number of agents) тесты. Если указан размер партии, то каждая партия будет содержать указанное количество тестов.


customBatchSizeValue - Количество тестов в партии
string. Требуется, если distributionBatchType = basedOnTestCases && batchingBasedOnAgentsOption = customBatchSize. Значение по умолчанию: 10.

Указывает размер партии.


batchingBasedOnExecutionTimeOption - Варианты пакетов
string. Необязательно. Используется при distributionBatchType = basedOnExecutionTime. Допустимые значения: autoBatchSize (Автоматически определять время партии), customTimeBatchSize (Указывать время выполнения для каждой партии). Значение по умолчанию: autoBatchSize.

При пакетной обработке учитывается прошедшее время выполнения для создания пакетов тестов, в которых каждый пакет имеет примерно одинаковое время выполнения. Быстрые тесты будут объединены в пакеты, в то время как более длительные тесты могут принадлежать к отдельному пакету. Когда этот параметр используется с параметром задания с несколькими агентами, общее время тестирования сокращается до минимума.


customRunTimePerBatchValue - Время работы (сек) на пакет
string. Требуется, если distributionBatchType = basedOnExecutionTime && batchingBasedOnExecutionTimeOption = customTimeBatchSize. Значение по умолчанию: 60.

Указывает время выполнения (в секундах) для каждого пакета.


dontDistribute - Репликация тестов вместо распределения, когда в задании используется несколько агентов
boolean. Значение по умолчанию: False.

При выборе этого параметра тесты не будут распределены между агентами, если задача выполняется в задании с несколькими агентами. Каждый из выбранных тестов будет повторен на каждом агенте. Этот параметр неприменим, если задание агента настроено на выполнение без параллелизма или с параметром с несколькими конфигурациями.


testRunTitle - заголовок запуска теста
string.

Задает имя тестового запуска.


platform - Сборка платформы
string.

Указывает платформу сборки, на которой должны создаваться отчеты о тестах. Если вы определили переменную для платформы в задаче сборки, используйте ее с этими входными данными.


configuration - Конфигурация сборки
string.

Указывает конфигурацию сборки, по которой должны создаваться отчеты о тестах. Если вы определили переменную для конфигурации в задаче сборки, используйте ее с этими входными данными.


publishRunAttachments - Загрузка тестовых вложений
boolean. Значение по умолчанию: true.

Дает согласие на публикацию вложений уровня прогона или против нее.


failOnMinTestsNotRun - Не выполните задачу, если не будет выполнено минимальное количество тестов.
boolean. Значение по умолчанию: False.

Завершает задачу сбоем, если не было выполнено минимальное количество тестов. Это может быть полезно, если какие-либо изменения входных данных задачи или зависимостей базового тестового адаптера приводят к тому, что необходимо найти только подмножество нужных тестов.


minimumExpectedTests - Минимум # тестов
string. Необязательно. Используется при failOnMinTestsNotRun = true. Значение по умолчанию: 1.

Указывает минимальное количество тестов, которые должны быть выполнены для успешного выполнения задачи. Общее количество выполненных тестов рассчитывается как сумма пройденных, непройденных и прерванных тестов.


diagnosticsEnabled - Сбор расширенной диагностики в случае катастрофических сбоев
boolean. Значение по умолчанию: false.

Собирает диагностические данные для устранения катастрофических сбоев, таких как тестовый сбой. Когда этот параметр отмечен, создается XML-файл последовательности, который присоединяется к тестовому прогону. Файл последовательности содержит информацию о последовательности, в которой выполнялись тесты, чтобы можно было определить потенциального виновника теста.


collectDumpOn - Сбор дампа процесса и прикрепление к отчету о тестовом прогоне
string. Необязательно. Используется при diagnosticsEnabled = true. Допустимые значения: onAbortOnly (Только при прерывании), alwaysnever, . Значение по умолчанию: onAbortOnly.

Собирает мини-дамп, который можно использовать для дальнейшего анализа.

  • onAbortOnly - мини-дамп будет собран только при прерывании тестового прогона.
  • Всегда - мини дамп будет собираться всегда, независимо от того, завершится тестовый прогон или нет.
  • Никогда - мини дамп не будет собран вне зависимости от того, завершится тестовый прогон или нет.

rerunFailedTests - Повторный запуск неудачных тестов
boolean. Значение по умолчанию: False.

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


rerunType - Не повторяйте тест, если сбои теста превышают указанное пороговое значение
string. Необязательно. Используется при rerunFailedTests = true. Допустимые значения: basedOnTestFailurePercentage (% неудачных тестов), basedOnTestFailureCount (# неудачных тестов). Значение по умолчанию: basedOnTestFailurePercentage.

Позволяет избежать повторного выполнения тестов, когда частота сбоев превышает указанное пороговое значение. Это применимо, если проблемы с окружающей средой приводят к массовым сбоям. В качестве порогового значения можно указать процент неудачных или количество неудачных тестов.


rerunFailedThreshold - % неудача
string. Необязательно. Используется при rerunFailedTests = true && rerunType = basedOnTestFailurePercentage. Значение по умолчанию: 30.

Избегает повторного запуска тестов, если процент неудачных тестовых случаев пересекает указанное пороговое значение. Это применимо, если проблемы с окружающей средой приводят к массовым сбоям.


rerunFailedTestCasesMaxLimit - # неудачных тестов
string. Необязательно. Используется при rerunFailedTests = true && rerunType = basedOnTestFailureCount. Значение по умолчанию: 5.

Избегает повторного запуска тестов, когда число неудачных тестовых случаев пересекает указанное ограничение. Это применимо, если проблемы с окружающей средой приводят к массовым сбоям.


rerunMaxAttempts - Максимальное # попыток
string. Необязательно. Используется при rerunFailedTests = true. Значение по умолчанию: 3.

Указывает максимальное количество повторных попыток неудачного теста. Если тест пройдет до того, как будет достигнуто максимальное количество попыток, он не будет повторяться.


Параметры управления задачами

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

Выходные переменные

Нет.

Замечания

Используйте эту задачу для выполнения модульных и функциональных тестов (Selenium, Appium, Coded UI test test и т. д.) с помощью средства выполнения тестов Visual Studio. Наряду с тестами на основе MSTest также могут выполняться тестовые платформы с тестовым адаптером Visual Studio, такие как xUnit, NUnit или Chutzpah.

Проверяет, что целевая платформа .NET Core может быть выполнена путем указания соответствующего значения целевой платформы в файле .runsettings.

Тесты могут быть распределены по нескольким агентам с помощью версии 2 этой задачи. Дополнительные сведения см. в статье Параллельное выполнение тестов с помощью задачи "Тест" Visual Studio.

Проверка предварительных условий

Если вы используете локальный агент Windows, необходимо установить следующее предварительное условие:

Требования

Агент должен обладать следующими возможностями:

vstest

Спрос vstest может быть удовлетворен двумя способами:

  1. Visual Studio устанавливается на компьютере агента.
  2. С помощью задачи установщика тестовой платформы Visual Studio в определении конвейера.

Как я могу запустить тесты, использующие TestCase в качестве источника данных?

Для выполнения автоматических тестов, использующих TestCase в качестве источника данных, необходимо следующее:

  1. На компьютере агента должна быть установлена Visual Studio 2017.6 или более поздней версии. Задачу установщика тестовой платформы Visual Studio нельзя использовать для выполнения тестов, использующих TestCase в качестве источника данных.
  2. Создайте PAT , авторизованный для области "Рабочие элементы (полные)".
  3. Добавьте переменную безопасной сборки или освобождения, вызванную Test.TestCaseAccessToken со значением, равным PAT, созданному на предыдущем шаге.

Я столкнулся с проблемами при выполнении тестов xUnit и NUnit, управляемых данными, с некоторыми параметрами задач. Существуют ли известные ограничения?

Тесты на основе данных, использующие тестовые платформы xUnit и NUnit, имеют некоторые известные ограничения и не могут использоваться со следующими вариантами задач:

  1. Повторите неудачные тесты.
  2. Распределение тестов по нескольким агентам и варианты пакетной обработки.
  3. Анализ воздействия теста.

Указанные выше ограничения связаны с тем, как адаптеры для этих тестовых платформ обнаруживают и сообщают о тестах, управляемых данными.

Поддерживает ли задача VSTest выполнение тестов, нацеленных на несколько целевых платформ одновременно?

Да, начиная с версии 17.3 VSTest поддерживает выполнение тестов, которые нацелены на несколько целевых платформ одновременно. До этого это было невозможно из-за ограничений со стороны платформы VSTest .

Если вы хотите выполнять тесты, принадлежащие нескольким целевым платформам, необходимо установить совместимую версию VSTest с помощью установщика тестовой платформы Visual Studio и настроить vsTestVersiontoolsInstaller ее на использование.

При публикации результата теста появляется такая ошибка: Не удалось опубликовать результаты теста: указан неверный приоритет?

Эта ошибка возникает, если какой-либо из тестовых методов имеет приоритет выше 255, исправить приоритет тестового метода в коде и выполнить тесты снова. Вы можете просмотреть созданный trx-файл, чтобы просмотреть все тесты с приоритетом больше 255.

Требования

Требование Описание
Типы конвейеров YAML, классическая сборка, классический выпуск
Выполняется в Агент, DeploymentGroup
Требования Для выполнения заданий, использующих эту задачу, локальные агенты должны обладать возможностями , соответствующими следующим требованиям : vstest
Возможности Эта задача не удовлетворяет требованиям к последующим задачам в задании.
ограничения команд Любое
переменные settable Любое
Версия агента 2.103.0 или более поздней версии
Категория задач Тест