Сообщайте о тестах .NET Core XUnit с помощью сценария сборки Cake, чтобы его могли использовать DevOps Azure. - PullRequest
1 голос
/ 13 мая 2019

Я пытаюсь сообщить о результатах XUnit проекта .NET Core XUnit в DevOps Azure. Процесс сборки записывается в скрипте Cake Build, который вызывается конвейером сборки Azure DevOps. Тесты XUnit выполняются, но они сообщают CLI только минимальный уровень. Я хочу, чтобы резюме и детали записывались в файл: JSON, XML, это не имеет большого значения. Вот пример кода в настоящее время:

Task("UnitTests")
    .Does(() =>
    {
        DotNetCoreTest(
            testProject,
            new DotNetCoreTestSettings()
            {
                Configuration = configuration,
                NoBuild = true
            }
        );
    });

Сценарий Cake выполняется сценарием Powershell через задачу Powershell в конвейере сборки.

Что мне нужно сделать, чтобы запустить dotnetcoretest в Cake, чтобы он сообщал в формате и месте, где я могу использовать Azure DevOps? Я попытался использовать аргумент "-xml", и это не сработало для теста dotnet.

Нужно ли добавлять задачу в конвейер сборки в DevOps Azure, чтобы получить результаты XUnit из сценария Cake?

Как просмотреть тесты XUnit в DevOps Azure?

1 Ответ

1 голос
/ 14 мая 2019

Вы можете экспортировать в формате VSTest

Task("UnitTests")
    .Does(() =>
    {
        DotNetCoreTest(
            testProject,
            new DotNetCoreTestSettings()
            {
                Configuration = configuration,
                NoBuild = true,
                NoRestore = true,
                ArgumentCustomization = args=>args.Append($"--logger trx;LogFileName=\"{testResultsFile}\"")
            }
        );
    });

Затем вы можете добавить задачу в DevOps Azure, аналогичную

YAML

    steps:
    - task: PublishTestResults@2
      displayName: 'Publish Test Results artifacts/**/test-results/*TestResults*.xml'
      inputs:
        testResultsFormat: VSTest
        testResultsFiles: 'artifacts/**/test-results/*TestResults*.xml'

Дизайнер

Azure Pipelines publish test results task

Cake

Или прямо из сценария Cake TFBuild.Commands.PublishTestResults (TFBuildPublishTestResultsData)

TFBuild.Commands.PublishTestResults(
    new TFBuildPublishTestResultsData {
        TestResultsFiles = new []{
            testResultsFile
        },
        TestRunner = TFTestRunnerType.VSTest
    }
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...