【问题标题】:Report .NET Core XUnit tests through Cake build script so that Azure DevOps can use it通过 Cake 构建脚本报告 .NET Core XUnit 测试,以便 Azure DevOps 可以使用它
【发布时间】:2019-09-30 17:40:18
【问题描述】:

我正在尝试在 Azure DevOps 中报告 .NET Core XUnit 项目的 XUnit 结果。构建过程是在一个 Cake Build 脚本中编写的,该脚本由 Azure DevOps 构建管道调用。 XUnit 测试运行,但它们只向 CLI 报告最低限度。我希望将摘要和详细信息写入文件:JSON、XML,这无关紧要。这是当前的示例代码:

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

Cake 脚本正在由 Powershell 脚本通过 Build Pipeline 中的 Powershell 任务运行。

我必须做什么才能在 Cake 中运行 dotnetcoretest 以使其报告到我可以使用 Azure DevOps 的格式和位置?我尝试使用“-xml”参数,但不适用于 dotnet 测试。

我是否必须在 Azure DevOps 的构建管道中添加一个任务才能从 Cake 脚本中获取 XUnit 结果?

如何在 Azure DevOps 中查看 XUnit 测试?

【问题讨论】:

    标签: xml .net-core azure-devops xunit.net cakebuild


    【解决方案1】:

    您可以以 VSTest 格式导出

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

    然后您可以在 Azure DevOps 中添加类似的任务

    YAML

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

    设计师

    蛋糕

    或者直接从 Cake 脚本使用 TFBuild.Commands.PublishTestResults(TFBuildPublishTestResultsData)

    TFBuild.Commands.PublishTestResults(
        new TFBuildPublishTestResultsData {
            TestResultsFiles = new []{
                testResultsFile
            },
            TestRunner = TFTestRunnerType.VSTest
        }
    )
    

    【讨论】:

    • 仅供参考,我使用 Cake 方法发布测试结果,效果很好。
    猜你喜欢
    • 1970-01-01
    • 2019-08-18
    • 2018-03-17
    • 1970-01-01
    • 2020-02-09
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    • 2017-03-27
    相关资源
    最近更新 更多