Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эти функции требуют установки дополнительных пакетов NuGet, как описано в каждом разделе.
Подсказка
При использовании Microsoft.Testing.Platform.MSBuild (включается транзитивно MSTest, NUnit и xUnit runners), эти расширения регистрируются автоматически при установке пакетов NuGet — изменения кода не требуются. Регистрация вручную, указанная в этой статье, требуется только в том случае, если вы отключили автоматическую точку входа, задав параметр <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>.
Имена файлов отчета
Каждое расширение отчёта записывает свой файл в каталог результатов тестов, который можно задать с помощью параметра --results-directory. Чтобы переопределить имя, используйте соответствующий --report-*-filename параметр. Каждый раздел отчета содержит имя по умолчанию для этого отчета.
Имя файла может содержать относительный путь, который остается в каталоге результатов теста, и он может использовать следующие элементы замены (заполнители):
| Placeholder | Description |
|---|---|
{asm} |
Имя сборки записи или unknown если она недоступна. |
{tfm} |
Идентификатор целевой платформы, определяемый во время выполнения, например net9.0. |
{arch} |
Архитектура процесса, например x64, x86или arm64. |
{pname} |
имя процесса; |
{pid} |
Идентификатор процесса. |
{time} |
Метка времени высокой точности. |
Например, --report-trx-filename "{asm}_{tfm}_{arch}.trx" воспроизводит имя TRX по умолчанию.
Замечание
Имена заполнителей чувствительны к регистру и записываются строчными буквами. Поддержка заполнителей для имен файлов отчета доступна в MTP начиная с версии 2.3.0.
Консолидация отчетов
Начиная с MTP 2.4.0, MTP автоматически выполняет постобработку артефактов отчётов после вызова dotnet test, если оно запускает несколько тестовых модулей, или после того, как механизм повторных попыток выполняет несколько попыток. Эта функция экспериментальна в MTP 2.4.0.
Расширения TRX, JUnit, CTRF и HTML группируют совместимые артефакты по виду отчета и создают сводный отчет в подкаталоге merged каталога результатов тестов. Консолидация CTRF объединяет результаты модулей и сводит повторные попытки к итоговому результату теста с историей повторных попыток. Консолидация HTML создает объединенную сводку и сохраняет исходные отчеты для каждого процесса.
Для пользовательских расширений отчетов экспериментальный IArtifactPostProcessor API предоставляет отдельные TestModules режимы обработки и RetryAttempts режимы обработки. Дополнительные сведения см. в разделе "РасширенияIArtifactPostProcessor".
Visual Studio тестовые отчеты (TRX)
Файл результатов теста Visual Studio (или TRX) — это формат по умолчанию для публикации результатов теста. Для этого расширения требуется пакет NuGet Microsoft.Testing.Extensions.TrxReport .
Регистрация вручную
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddTrxReportProvider();
Замечание
При использовании ручной регистрации зарегистрируйте поставщика отчетов TRX последний раз. Текущая реализация зависит от порядка регистрации, поэтому регистрация ее после всех остальных расширений гарантирует, что она записывает все тестовые данные.
Замечание
Доступно в MTP начиная с версии 1.9.0, отчет TRX включает поле тестирования Description .
Замечание
Начиная с версии 2.3.0 в MTP результаты TRX записываются на диск по мере выполнения. Если тестовый узел завершает работу, TRX-файл сохраняет собранные результаты до сбоя.
Options
| Опция | Description |
|---|---|
--report-trx |
Создает отчет TRX. |
--report-trx-filename |
Имя созданного отчета TRX. Начиная с MTP 2.3.0, по умолчанию используется детерминированная {asm}_{tfm}_{arch}.trx форма; до MTP 2.3.0 значение по умолчанию.<UserName>_<MachineName>_<yyyy-MM-dd_HH_mm_ss.fffffff>.trx Сведения о настройке имени см. в разделе "Имена файлов отчета". |
Отчет сохраняется в папке по умолчанию TestResults, которую можно указать с помощью аргумента командной строки --results-directory.
HTML-отчеты
HTML-отчет создает интерактивный самодостаточный HTML-файл для сеанса тестирования. Для этого расширения требуется пакет NuGet Microsoft.Testing.Extensions.HtmlReport.
Замечание
Доступно в MTP начиная с версии 2.3.0. Это расширение является экспериментальным, а его параметры и формат выходных данных могут измениться в будущей версии.
Регистрация вручную
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddHtmlReportProvider();
Options
| Опция | Description |
|---|---|
--report-html |
Создает HTML-отчет. |
--report-html-filename |
Имя созданного HTML-отчета. Значение должно оканчиваться на .html. Значение по умолчанию — {asm}_{tfm}_{arch}.html. Сведения о настройке имени см. в разделе "Имена файлов отчета". Требует использования --report-html. |
Отчеты JUnit
Отчет JUnit создает XML-файл, совместимый с JUnit, для тестового сеанса. Для этого расширения требуется пакет NuGet Microsoft.Testing.Extensions.JUnitReport.
Замечание
Доступно в MTP начиная с версии 2.3.0. Это расширение является экспериментальным, а его параметры и формат выходных данных могут измениться в будущей версии.
Начиная с MSTest.Sdk 4.3, включите это расширение с помощью <EnableMicrosoftTestingExtensionsJUnitReport>true</EnableMicrosoftTestingExtensionsJUnitReport>. Расширение не является частью профилей DefaultMSTest.SdkAllMicrosoft.
Регистрация вручную
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddJUnitReportProvider();
Options
| Опция | Description |
|---|---|
--report-junit |
Создает XML-отчет JUnit. |
--report-junit-filename |
Имя созданного XML-отчета JUnit. Значение должно оканчиваться на .xml. Значение по умолчанию — {asm}_{tfm}_{arch}.xml. Сведения о настройке имени см. в разделе "Имена файлов отчета". Требует использования --report-junit. |
Отчеты CTRF
Отчет CTRF создает JSON-файл в формате Common Test Report Format для сеанса тестирования. Для этого расширения требуется пакет NuGet Microsoft.Testing.Extensions.CtrfReport.
Замечание
Доступно в MTP начиная с версии 2.3.0. Это расширение является экспериментальным, а его параметры и формат выходных данных могут измениться в будущей версии.
Регистрация вручную
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddCtrfReportProvider();
Options
| Опция | Description |
|---|---|
--report-ctrf |
Создает отчет CTRF в формате JSON. |
--report-ctrf-filename |
Имя созданного отчета CTRF JSON. Значение должно оканчиваться на .json. Значение по умолчанию — <UserName>_<MachineName>_<assembly>_<tfm>_<timestamp>.ctrf.json. Сведения о настройке имени см. в разделе "Имена файлов отчета". Требует использования --report-ctrf. |
Начиная с MSTest 4.4 результаты CTRF для повторных тестов включают retries и retryAttempts поля. Когда тест проходит после предыдущей неудачной попытки, его результат также включает flaky: true. Сводка в терминале показывает нестабильные и повторно запущенные тесты. TRX и JUnit отчеты сохраняют один окончательный результат для каждого теста вместо записи каждой попытки.
Отчеты Azure DevOps
Плагин отчётов Azure DevOps улучшает выполнение тестов для разработчиков, которые размещают свой код на GitHub, но собирают его с помощью агентов сборки Azure DevOps. Он добавляет дополнительную информацию к сбоям для отображения сбоя непосредственно в GitHub PR.
Для этого расширения требуется пакет NuGet Microsoft.Testing.Extensions.AzureDevOpsReport .
Регистрация вручную
var builder = await TestApplication.CreateBuilderAsync(args);
builder.TestHost.AddAzureDevOpsProvider();
Options
| Опция | Версия MTP | Description |
|---|---|---|
--report-azdo |
1.9.0 | Включает генератор отчетов Azure DevOps. Ошибки и предупреждения записываются в выходные данные в формате, который Azure DevOps понимает. |
--report-azdo-severity |
1.9.0 | Уровень серьезности для регистрируемых событий. Допустимые значения: error (по умолчанию) и warning. |
--report-azdo-groups |
2.4.0 | Включает или отключает группы журналов для каждой сборки. При включении вывод каждой тестовой сборки отображается в сворачиваемом разделе журнала Azure Pipelines. Допустимые значения — on и off. Предварительные сборки MTP 2.4.0 по умолчанию используют off; стабильный выпуск MTP 2.4.0 по умолчанию использует on. Требует использования --report-azdo. |
--report-azdo-annotations |
2.4.0 | Включает или отключает аннотации для неудачных и пропущенных тестов. Допустимые значения: on (по умолчанию) и off. Требует использования --report-azdo. |
--report-azdo-flaky-history |
2.3.0 | Запрашивает историю результатов тестов в Azure DevOps за последние N дней (1–90) и помечает зарегистрированные сбои сведениями о нестабильности. Требует использования --report-azdo. |
--report-azdo-demote-known-flaky |
2.3.0 | Понижает статус сбоев, которые в окне истории Azure DevOps считаются достаточно нестабильными (пороговое значение по умолчанию — 25%), с ошибок до предупреждений. Требуется --report-azdo и --report-azdo-flaky-history. |
--report-azdo-quarantine-file |
2.3.0 | Путь к текстовому файлу, который содержит полные имена или шаблоны глобов в карантине. Ошибки сопоставления отображаются как предупреждения. Требует использования --report-azdo. |
--report-azdo-summary |
2.3.0 | Записывает сводку задания Markdown в конце тестового запуска и отправляет его через ##vso[task.uploadsummary]. Необязательный аргумент пути к файлу переопределяет расположение по умолчанию ({testResultsDir}/azdo-summary-{tfm}.md). Требует использования --report-azdo. |
--report-azdo-stackframe-filter |
2.3.0 | Добавляет шаблоны регулярных выражений, которые сопоставляются с полным префиксом имени типа каждого кадра стека и игнорируются, когда расширение определяет место вызова пользователя для аннотирования. Этот параметр можно повторять, до 16 шаблонов, и каждый шаблон компилируется с временем ожидания совпадения 500 мс. Эти шаблоны дополняют встроенные в расширение префиксы реализации утверждений MSTest. Требует использования --report-azdo. |
--report-azdo-upload-artifacts |
2.3.0 | Отправляет файлы результатов теста и /или добавляет теги сборки в Azure DevOps. Допустимые значения: off (по умолчанию), tags-onlyfiles, и all. |
--report-azdo-upload-artifact-include |
2.3.0 | Включает файлы в отправку артефактов Azure DevOps с помощью glob-шаблонов относительно каталога результатов тестов. По умолчанию — **/*. Значение --report-azdo-upload-artifacts должно отличаться от off. |
--report-azdo-upload-artifact-exclude |
2.3.0 | Исключает файлы из отправки артефактов в Azure DevOps с помощью glob-шаблонов относительно каталога результатов тестов. Значение --report-azdo-upload-artifacts должно отличаться от off. |
--report-azdo-upload-artifact-name |
2.3.0 | Переопределяет имя контейнера артефактов Azure DevOps. По умолчанию — TestResults_{assemblyName}_{tfm}. Значение --report-azdo-upload-artifacts должно отличаться от off. |
--publish-azdo-test-results |
2.3.0 | Публикует результаты теста на вкладке Azure DevOps Tests. |
--publish-azdo-run-name |
2.3.0 | Задает пользовательское имя запуска тестов Azure DevOps для публикации результатов тестирования в реальном времени. Требует использования --publish-azdo-test-results. |
Предупреждение
Не включите группы, если несколько тестовых сборок выполняются параллельно. Команды Azure DevOps ##[group] и команды форматирования ##[endgroup] являются последовательными и безымянными. Вывод при параллельной сборке может перемешиваться, вызывать неправильную вложенность групп и относить строки не к той сборке. Если вы используете сборку предварительной версии MTP 2.4.0, передайте --report-azdo-groups off для отключения групп. Стабильный выпуск MTP 2.4.0 по умолчанию отключает группы. Передавайте --report-azdo-groups on только для одной сборки или при последовательном выполнении сборок.
Замечание
Столбец версии MTP содержит первую версию MTP, содержащую каждый параметр. Само расширение Azure DevOps стало стабильным в MTP 1.9.0 с --report-azdo и --report-azdo-severity; остальные параметры были добавлены в MTP 2.3.0 или 2.4.0.
Расширение автоматически обнаруживает, что оно выполняется в среде непрерывной интеграции (CI), проверяя TF_BUILD переменную среды.
Начиная с MTP 2.4.0, Azure DevOps Markdown суммирует результаты в каждом тестовом модуле в вызовеdotnet test. При включении покрытия кода сводка включает в себя охватываемое и общее количество, проценты, пороговые результаты и индикатор, когда данные покрытия являются частичными.
Отчеты GitHub Actions
Отчет GitHub Actions генерирует собственные команды workflow GitHub Actions, благодаря чему тестовые прогоны дают полноценное представление результатов в среде выполнения: отдельные группы журналов для каждой сборки, аннотации о неудачных и пропущенных тестах (они отображаются на вкладке Annotations workflow, а если удается определить расположение в исходном коде — и в диффе Files changed запроса на включение изменений), сводка задания в формате Markdown, добавляемая в файл, на который указывает GITHUB_STEP_SUMMARY, и уведомления о медленных тестах.
Для этого расширения требуется пакет NuGet Microsoft.Testing.Extensions.GitHubActionsReport.
Расширение активируется только в том случае, если запуск выполняется в GitHub Actions (переменная среды GITHUB_ACTIONS имеет значение true) и включён переключатель --report-gh; в противном случае расширение ничего не делает. Когда параметр активен, каждая функция включена по умолчанию, и её можно отключить отдельно с помощью параметра --report-gh-*.
Important
Параметр --report-gh принадлежит Microsoft.Testing.Extensions.GitHubActionsReport. Пакет GitHubActionsTestLogger предоставляет другой вариант --report-github. Параметры не являются псевдонимами и работают только в том случае, если тестовый проект регистрирует пакет, принадлежащий параметру.
Замечание
Расширение доступно начиная с MTP 2.3.0. Начиная с MTP 2.4.0, его общедоступные точки входа больше не экспериментальны.
Регистрация вручную
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddGitHubActionsProvider();
Options
| Опция | Версия MTP | Description |
|---|---|---|
--report-gh |
2.3.0 | Включает генератор отчётов GitHub Actions, при котором тестовые запуски выдают команды workflow. Требуется, чтобы выполнение выполнялось в GitHub Actions. |
--report-gh-groups |
2.3.0 | Включает или отключает группы журналов для каждой сборки. Допустимые значения: on (по умолчанию) и off. Требует использования --report-gh. |
--report-gh-annotations |
2.3.0 | Включает или отключает аннотации для неудачных и пропущенных тестов. Допустимые значения: on (по умолчанию) и off. Требует использования --report-gh. |
--report-gh-step-summary |
2.3.0 | Определяет, записывает ли расширение сводку задания в формате Markdown в файл, указанный в GITHUB_STEP_SUMMARY. Допустимые значения: on (по умолчанию) offи, начиная с MTP 2.4.0, on-failure. Требует использования --report-gh. |
--report-gh-step-summary-sections |
2.4.0 | Выбирает сводное содержимое. Допустимые значения: test-results, coverageslow-testsи all (по умолчанию). Требуется --report-gh и режим сводки, отличный от off. |
--report-gh-slow-test-notices |
2.3.0 | Включает или отключает уведомления о медленном тестировании. Допустимые значения: on (по умолчанию) и off. Требует использования --report-gh. |
--report-gh-slow-test-threshold |
2.3.0 | Время, в течение которого может выполняться тест, прежде чем будет выдано уведомление о медленном выполнении теста. Принимает голое количество секунд или значение с суффиксом единицы, например 90s, 2mили 1.5h. Значение по умолчанию — 60s. Требует использования --report-gh. |
Начиная с MTP 2.4.0, GitHub Actions Markdown суммирует результаты по каждому тестовому модулю в вызовеdotnet test. Если вы также включите покрытие кода, выберите coverage или all, чтобы включить количество покрытых и общее количество, проценты, результаты проверки пороговых значений и индикатор того, что данные о покрытии являются неполными.