Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте эту задачу для запуска модульных и функциональных тестов (Selenium, Appium, Coded UI test и др.) с помощью runrunner Visual Studio Test (VSTest). Можно запускать тестовые фреймворки с тестовым адаптером Visual Studio. Примерами фреймворков являются MSTest, xUnit, NUnit, Chutzpah (для тестов JavaScript с использованием QUnit, Mocha и Jasmine) и т.д. С помощью этой задачи тесты могут быть распределены на нескольких агентах.
Замечание
VSTest@3 — это самая новая версия задачи, которую следует использовать в воронках продаж.
Замечание
Задача VSTest@3 может повторно запускать неудачные тесты, управляемые данными, только со статическими параметрами и без пользовательского displayName, для фреймворков MsTest, xUnit и nUnit.
Замечание
VSTest #REF! task is specific to VSTest-platform. Он не поддерживает более новую версию Microsoft.Testing.Platform (MTP).
Задача DotNetCoreCLI@2 поддерживает платформу Microsoft.Testing.Platform (MTP). Для получения дополнительной информации см. Microsoft.Testing.Platform теперь полностью поддерживается в Azure DevOps.
Синтаксис
# Visual Studio Test v3
# Run unit and functional tests (Selenium, Appium, Coded UI test, etc.) using the Visual Studio Test (VsTest) runner. Test frameworks that have a Visual Studio test adapter such as MsTest, xUnit, NUnit, Chutzpah (for JavaScript tests using QUnit, Mocha and Jasmine), etc. can be run. Tests can be distributed on multiple agents using this task (version 2 and later).
- task: VSTest@3
inputs:
#azureSubscription: # string. Alias: ConnectedServiceName. Azure Resource Manager connection.
# 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' | '18.0' | '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.
#donotPublishTestResults: false # boolean. Optional. Use when runInParallel = false. Disable publishing test results. Default: false.
#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 v3
# Run unit and functional tests (Selenium, Appium, Coded UI test, etc.) using the Visual Studio Test (VsTest) runner. Test frameworks that have a Visual Studio test adapter such as MsTest, xUnit, NUnit, Chutzpah (for JavaScript tests using QUnit, Mocha and Jasmine), etc. can be run. Tests can be distributed on multiple agents using this task (version 2 and later).
- task: VSTest@3
inputs:
#azureSubscription: # string. Alias: ConnectedServiceName. Azure Resource Manager connection.
# 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.
#donotPublishTestResults: false # boolean. Optional. Use when runInParallel = false. Disable publishing test results. Default: false.
#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.
Входные данные
azureSubscription
-
Azure Resource Manager соединение
Псевдоним ввода: . .
Укажите Azure Resource Manager сервисное соединение, настроенное с федерацией идентификации рабочей нагрузки для использования AzurePipelinesCredential в интеграционных тестах. Дополнительные сведения см. в статье Использование AzurePipelinesCredential в тестах интеграции.
Замечание
Эти входные данные поддерживают только подключения службы ARM, настроенные для использования федерации удостоверений рабочей нагрузки.
Выбор тестов с помощью
. Обязательное. Допустимые значения: (Тестовые сборки), (План тестирования), (Тестовый прогон). Значение по умолчанию: .
- Тестовая сборка: Указывает одну или несколько тестовых сборок, содержащих тесты. При необходимости можно указать критерии фильтра, чтобы выбрать только определенные тесты.
- План тестирования: Выполняет тесты из плана тестирования, с которыми связан метод автоматического тестирования. Дополнительные сведения о том, как связать тесты с рабочим элементом тестового случая, см. в разделе Связывание автоматических тестов с тестовыми случаями.
- Тестовый запуск: Используйте этот параметр при настройке среды для выполнения тестов на основе планов тестирования. Этот параметр не следует использовать при выполнении тестов в конвейере непрерывной интеграции и непрерывного развертывания (CI/CD).
Тестовые файлы
. Требуется, если . Значение по умолчанию: .
Запускает тесты из указанных файлов. Упорядоченные тесты и веб-тесты можно запустить, указав файлы и соответственно. Для запуска .webtest требуется Visual Studio обновление 2017 года 4 или выше. Пути к файлам указываются относительно папки поиска. Этот ввод поддерживает несколько строк шаблонов мини-соответствия.
# Example
- task: VSTest@3
inputs:
testSelector: 'testAssemblies'
testAssemblyVer2: |
**\*test*.dll
!**\*TestAdapter.dll
!**\obj\**
План испытаний
. Требуется, если .
Указывает план тестирования, содержащий наборы тестов с автоматическими тестовыми случаями.
Набор тестов
. Требуется, если .
Указывает один или несколько наборов тестов, содержащих автоматические тестовые случаи. Рабочие элементы тестового случая должны быть связаны с автоматизированным методом тестирования.
Тестовая конфигурация
. Требуется, если .
Указывает конфигурацию теста.
Тестовый прогон
. Необязательно. Используется при . Значение по умолчанию: .
Указывает выбор на основе тестового запуска, который используется при активации автоматических тестовых запусков из планов тестирования. Этот параметр нельзя использовать для выполнения тестов в конвейере CI/CD.
папки поиска
. Обязательное. Значение по умолчанию: .
Указывает папку для поиска тестовых сборок.
Папка с результатами теста
. Значение по умолчанию: .
Указывает папку для хранения результатов теста. При использовании каталога по умолчанию он очищается в конце выполнения конвейера. Каталог результатов всегда будет очищен в начале задачи перед запуском тестов. Относительный путь к папке, если он указан, будет считаться относительным к .
Критерии тестового фильтра
. Необязательно. Используется при .
Задает дополнительные критерии для фильтрации тестов из тестовых сборок. Например: . Вы можете использовать фильтр для отмены фильтра. Дополнительные сведения о фильтрах и параметрах см. в разделе Поиск и фильтрация списка тестов.
Узнайте о параметрах командной строки.
Выполняйте только затронутые тесты
. Необязательно. Используется при . Значение по умолчанию: .
Автоматически определяет и запускает тесты, необходимые для проверки изменения кода. Узнайте об использовании анализа воздействия теста.
Количество сборок, после которых должны быть запущены все тесты
. Необязательно. Используется при . Значение по умолчанию: .
Указывает количество сборок, которые должны быть выполнены перед автоматическим запуском всех тестов. Test Impact Analysis хранит сопоставление между тестовыми случаями и исходным кодом. Рекомендуется повторно генерировать сопоставление, регулярно выполняя все тесты.
Тестовый микс содержит тесты пользовательского интерфейса
. Значение по умолчанию: .
Чтобы выполнить тесты пользовательского интерфейса, убедитесь, что агент настроен на работу в интерактивном режиме с включенным автовходом . Настройка агента для интерактивного выполнения должна быть выполнена до постановки сборки/выпуска в очередь. Установка этого флажка не приводит к автоматической настройке агента в интерактивном режиме. Эта опция служит напоминанием о необходимости соответствующей настройки агента во избежание сбоев. Для запуска тестов интерфейса можно использовать размещённые агенты #REF! из пулов VS 2015 и 2017.
Выберите тестовую платформу с помощью
. Допустимые значения: , (Конкретное местоположение). Значение по умолчанию: .
Указывает, какую тестовую платформу следует использовать.
Версия тестовой платформы
. Необязательно. Используется при . Допустимые значения: latest, 18.0 (Visual Studio 2026), 17.0 (Visual Studio 2022), 16.0 (Visual Studio 2019), 15.0 (Visual Studio 2017), 14.0 (Visual Studio 2015), toolsInstaller (установлено установщиком инструментов). Значение по умолчанию: .
Указывает версию Visual Studio Test для использования. Если указан последний , то при этом будет выбрана последняя версия (из списка разрешенных значений), которая будет установлена. Чтобы запускать тесты без необходимости Visual Studio на агенте, используйте опцию Install by tools installer. Обязательно включите задачу Visual Studio Test Platform Installer чтобы получить тестовую платформу от NuGet.
Версия тестовой платформы
. Необязательно. Используется при . Допустимые значения: latest, 17.0 (Visual Studio 2022), 16.0 (Visual Studio 2019), 15.0 (Visual Studio 2017), 14.0 (Visual Studio 2015), toolsInstaller (установлено установщиком инструментов). Значение по умолчанию: .
Указывает версию Visual Studio Test для использования. Если указан последний , то при этом будет выбрана последняя версия (из списка разрешенных значений), которая будет установлена. Чтобы запускать тесты без необходимости Visual Studio на агенте, используйте опцию Install by tools installer. Обязательно включите задачу Visual Studio Test Platform Installer чтобы получить тестовую платформу от NuGet.
Путь к vstest.console.exe
. Необязательно. Используется при .
Указывает путь к VSTest.
Файл настроек
.
Указывает путь к файлу или для использования с тестами. Для Visual Studio 15.7 и выше используйте runsettings для всех типов тестов. Узнайте больше о преобразовании файла в файл.
Переопределение параметров тестового прогона
.
Переопределяет параметры, определенные в разделе файла или в разделе файла. Например: .
Примечание: Свойства, указанные в файле testsettings, доступны через TestContext с помощью Visual Studio 2017 года (обновление 4 или выше).
Путь к пользовательским тестовым адаптерам
.
Указывает путь к каталогу для пользовательских тестовых адаптеров. Адаптеры, находящиеся в той же папке, что и тестовые сборки, обнаруживаются автоматически.
Параллельное выполнение тестов на многоядерных машинах
. Значение по умолчанию: .
Если задано значение , тесты выполняются параллельно и используют доступные ядра машины. Это переопределит if, указанный в вашем файле. Узнайте больше о параллельном выполнении тестов.
Выполняйте тесты изолированно
. Значение по умолчанию: .
Выполняет тесты в изолированном процессе. Это, вероятно, приведет к меньшему количеству ошибок в процессе тестирования vstest.console.exe, но тесты могут выполняться медленнее. В настоящее время этот параметр нельзя использовать при работе с параметром задания с несколькими агентами.
Покрытие кода включено
. Значение по умолчанию: .
Собирает сведения о покрытии кода из тестового запуска.
Другие варианты консолей
.
Другие параметры консоли , которые можно передать в vstest.console.exe.
Эти параметры не поддерживаются и будут игнорироваться при выполнении тестов с использованием параметра Параллельность нескольких агентов задания агента, при выполнении тестов с использованием параметра План тестирования или Тестовый запуск , а также при выборе пользовательского параметра пакетной обработки. Вместо этого параметры можно указать с помощью файла настроек.
Периодические испытания
. Допустимые значения: (На основе количества тестов и агентов), (На основе прошлого времени выполнения тестов ), (На основе тестовых сборок). Значение по умолчанию: .
Партия — это группа тестов. Пакет тестов выполняет свои тесты одновременно, и для него публикуются результаты. Если задание, в котором выполняется задача, настроено на использование нескольких агентов, каждый агент выбирает все доступные пакеты тестов для параллельного выполнения. Пакетную обработку можно запустить:
на основе количества тестов и агентов. Простое пакетирование на основе количества тестов и агентов, участвующих в тестовом прогоне.
На основе прошедшего времени выполнения тестов. При пакетной обработке учитывается прошедшее время выполнения для создания пакетов тестов, в которых каждый пакет имеет примерно одинаковое время выполнения.
на основе тестовых сборок. Тесты из сборки объединяются в пакеты.
Варианты пакетов
. Необязательно. Используется при . Допустимые значения: (Автоматически определить размер партии), (Указать размер партии). Значение по умолчанию: .
Указывает простую пакетную обработку на основе количества тестов и агентов, участвующих в тестовом запуске. Когда размер партии определяется автоматически, каждая партия содержит тесты. Если указан размер партии, то каждая партия будет содержать указанное количество тестов.
Количество тестов в партии
. Требуется, если . Значение по умолчанию: .
Указывает размер партии.
Варианты пакетов
. Необязательно. Используется при . Допустимые значения: (Автоматически определять время партии), (Указывать время выполнения для каждой партии). Значение по умолчанию: .
При пакетной обработке учитывается прошедшее время выполнения для создания пакетов тестов, в которых каждый пакет имеет примерно одинаковое время выполнения. Быстрые тесты будут объединены в пакеты, в то время как более длительные тесты могут принадлежать к отдельному пакету. Когда этот параметр используется с параметром задания с несколькими агентами, общее время тестирования сокращается до минимума.
Время работы (сек) на пакет
. Требуется, если . Значение по умолчанию: .
Указывает время выполнения (в секундах) для каждого пакета.
Репликация тестов вместо распределения, когда в задании используется несколько агентов
. Значение по умолчанию: .
При выборе этого параметра тесты не будут распределены между агентами, если задача выполняется в задании с несколькими агентами. Каждый из выбранных тестов будет повторен на каждом агенте. Этот параметр неприменим, если задание агента настроено на выполнение без параллелизма или с параметром с несколькими конфигурациями.
заголовок запуска теста
.
Задает имя тестового запуска.
Сборка платформы
.
Указывает платформу сборки, на которой должны создаваться отчеты о тестах. Если вы определили переменную для платформы в задаче сборки, используйте ее с этими входными данными.
Конфигурация сборки
.
Указывает конфигурацию сборки, по которой должны создаваться отчеты о тестах. Если вы определили переменную для конфигурации в задаче сборки, используйте ее с этими входными данными.
Загрузка тестовых вложений
. Значение по умолчанию: .
Дает согласие на публикацию вложений уровня прогона или против нее.
Отключение публикации результатов тестов
. Необязательно. Используется при . Значение по умолчанию: .
Если эта опция включена, результаты теста не будут опубликованы в рамках этой задачи. Вместо этого используйте задачу «Опубликовать результаты теста».
Не выполните задачу, если не будет выполнено минимальное количество тестов.
. Значение по умолчанию: .
Завершает задачу сбоем, если не было выполнено минимальное количество тестов. Это может быть полезно, если какие-либо изменения входных данных задачи или зависимостей базового тестового адаптера приводят к тому, что необходимо найти только подмножество нужных тестов.
Минимум # тестов
. Необязательно. Используется при . Значение по умолчанию: .
Указывает минимальное количество тестов, которые должны быть выполнены для успешного выполнения задачи. Общее количество выполненных тестов рассчитывается как сумма пройденных, непройденных и прерванных тестов.
Сбор расширенной диагностики в случае катастрофических сбоев
. Значение по умолчанию: .
Собирает диагностические данные для устранения катастрофических сбоев, таких как тестовый сбой. Когда этот параметр отмечен, создается XML-файл последовательности, который присоединяется к тестовому прогону. Файл последовательности содержит информацию о последовательности, в которой выполнялись тесты, чтобы можно было определить потенциального виновника теста.
Сбор дампа процесса и прикрепление к отчету о тестовом прогоне
. Необязательно. Используется при . Допустимые значения: (Только при прерывании), , . Значение по умолчанию: .
Собирает мини-дамп, который можно использовать для дальнейшего анализа.
- onAbortOnly - мини-дамп будет собран только при прерывании тестового прогона.
- Всегда - мини дамп будет собираться всегда, независимо от того, завершится тестовый прогон или нет.
- Никогда - мини дамп не будет собран вне зависимости от того, завершится тестовый прогон или нет.
Повторный запуск неудачных тестов
. Значение по умолчанию: .
Повторно запускает все неудачные тесты до тех пор, пока они не будут пройдены или пока не будет достигнуто максимальное количество попыток.
Не повторяйте тест, если сбои теста превышают указанное пороговое значение
. Необязательно. Используется при . Допустимые значения: (% неудачных тестов), (# неудачных тестов). Значение по умолчанию: .
Позволяет избежать повторного выполнения тестов, когда частота сбоев превышает указанное пороговое значение. Это применимо, если проблемы с окружающей средой приводят к массовым сбоям. В качестве порогового значения можно указать процент неудачных или количество неудачных тестов.
% неудача
. Необязательно. Используется при . Значение по умолчанию: .
Избегает повторного запуска тестов, если процент неудачных тестовых случаев пересекает указанное пороговое значение. Это применимо, если проблемы с окружающей средой приводят к массовым сбоям.
# неудачных тестов
. Необязательно. Используется при . Значение по умолчанию: .
Избегает повторного запуска тестов, когда число неудачных тестовых случаев пересекает указанное ограничение. Это применимо, если проблемы с окружающей средой приводят к массовым сбоям.
Максимальное # попыток
. Необязательно. Используется при . Значение по умолчанию: .
Указывает максимальное количество повторных попыток неудачного теста. Если тест пройдет до того, как будет достигнуто максимальное количество попыток, он не будет повторяться.
Параметры управления задачами
Помимо входных данных, все задачи имеют параметры управления. Дополнительные сведения см. в разделе Параметры управления и общие свойства задач.
Выходные переменные
Нет.
Замечания
Используйте эту задачу для запуска модульных и функциональных тестов (Selenium, Appium, Coded UI test и других) с помощью Visual Studio Test Runner. Помимо тестов на базе MSTest, могут выполняться тестовые фреймворки с тестовым адаптером Visual Studio, такие как xUnit, NUnit или Chutzpah.
Тесты, что целевой .NET основной фреймворк могут быть выполнены путём указания соответствующего значения целевого фреймворка в файле .runsettings.
Тесты могут быть распределены по нескольким агентам с помощью версии 2 этой задачи. Для получения дополнительной информации см. Запускайте тесты параллельно с помощью задачи Visual Studio Test.
Проверка предварительных условий
Если вы используете самостоятельный агент #REF!, необходимо установить следующее требование:
- .NET Framework 4.6.2 или более поздняя версия
Требования
Агент должен обладать следующими возможностями:
vstest
Спрос vstest может быть удовлетворен двумя способами:
- Visual Studio устанавливается на агентную машину.
- Используя задачу Visual Studio Test Platform Installer в определении конвейера.
Как я могу запустить тесты, использующие TestCase в качестве источника данных?
Для выполнения автоматических тестов, использующих TestCase в качестве источника данных, необходимо следующее:
- У вас должен быть Visual Studio 2017.6 или выше на агенте. Задача установщика Visual Studio Test Platform Installer не может использоваться для запуска тестов, использующих TestCase в качестве источника данных.
- Создайте PAT , авторизованный для области "Рабочие элементы (полные)".
- Добавьте переменную безопасной сборки или освобождения, вызванную со значением, равным PAT, созданному на предыдущем шаге.
Могу ли я использовать эту задачу для тестов, основанных на данных (параметризованных тестов)?
Да. Задача поддерживает только тесты, основанные на данных, со статическими параметрами и без пользовательского displayName. Вам необходимо добавить переменную окружающей среды в ваш конвейер:
- Для MsTest:
- Для xUnit:
- Для nUnit:
Скриншот VSTest@3 переменной среды для параметризованных тестов.
Я столкнулся с проблемами при выполнении тестов xUnit, NUnit и MSTest на основе данных с некоторыми вариантами задач. Существуют ли известные ограничения?
Тесты, управляемые данными, использующие тестовые платформы xUnit, NUnit и MSTest, имеют некоторые известные ограничения и не могут использоваться со следующими вариантами задач:
- Повторный запуск неудачных тестов для тестов MsTest, xUnit и nUnit работает с тестами, основанными на данных, содержащими статические параметры.
- Распределение тестов по нескольким агентам и варианты пакетной обработки.
- Анализ воздействия теста.
Указанные выше ограничения связаны с тем, как адаптеры для этих тестовых платформ обнаруживают и сообщают о тестах, управляемых данными.
Поддерживает ли задача VSTest выполнение тестов, нацеленных на несколько целевых платформ одновременно?
Да, начиная с версии VSTest поддерживает выполнение тестов, которые нацелены на несколько целевых платформ одновременно. До этого это было невозможно из-за ограничений со стороны платформы VSTest .
Если вы хотите запускать тесты, относящиеся к нескольким целевым фреймворкам, вам нужно установить совместимую версию VSTest через Visual Studio Test Platform Installer и установить vsTestVersion в toolsInstaller для её использования.
При публикации результата теста появляется такая ошибка: Не удалось опубликовать результаты теста: указан неверный приоритет?
Эта ошибка возникает, если какой-либо из тестовых методов имеет приоритет выше 255, исправить приоритет тестового метода в коде и выполнить тесты снова. Вы можете просмотреть созданный trx-файл, чтобы просмотреть все тесты с приоритетом больше 255.
Использование AzurePipelinesCredential в тестах интеграции
Библиотеки #REF! Identity для .NET, C++, Go, Java, JavaScript и Python поддерживают федерацию идентификации рабочих нагрузок, поэтому код, выполняемый из задач #REF!CLI@2 и #REF!PowerShell@5, может аутентифицироваться с помощью Microsoft Entra ID (например, для доступа #REF!) с помощью класса #REF!PipelinesCredential.
Многие клиенты используют клиентские библиотеки #REF! в интеграционных тестах, вызываемых из других задач. Задачи DotNetCoreCLI@2, Maven@4 и VSTest@3 могут получить доступ к #REF! ресурсам с помощью класса #REF!PipelinesCredential.
Вы можете установить свойство connectedServiceName на #REF! сервисное соединение, настроенное с федерацией идентификации рабочих нагрузок. Для требуется задать SYSTEM_ACCESSTOKEN.
В следующем примере показаны входные данные для задачи . и использование аналогично.
- task: DotNetCoreCLI@2
inputs:
command: 'run'
connectedServiceName: <Azure service connection configured with workload identity federation>
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
Для получения дополнительной информации о #REF!PipelinesCredential см. Улучшение безопасности в #REF! сервисных соединениях с помощью #REF!PipelinesCredential.
Требования
| Требование | Описание |
|---|---|
| Типы конвейеров | YAML, классическая сборка, классический выпуск |
| Выполняется в | Агент, DeploymentGroup |
| Требования | Для выполнения заданий, использующих эту задачу, локальные агенты должны обладать возможностями , соответствующими следующим требованиям : vstest |
| Возможности | Эта задача не удовлетворяет требованиям к последующим задачам в задании. |
| ограничения команд | Любое |
| переменные settable | Любое |
| Версия агента | 2.144.0 или более поздней версии |
| Категория задач | Тест |