通过 Cake 构建脚本报告 .NET Core XUnit 测试,以便 Azure DevOps 可以使用它
Report .NET Core XUnit tests through Cake build script so that Azure DevOps can use it
我正在尝试报告 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
}
);
});
Powershell 脚本通过构建管道中的 Powershell 任务 运行 Cake 脚本。
我必须如何对 Cake 中的 运行 dotnetcoretest 进行操作才能使其报告为我可以使用 Azure DevOps 的格式和位置?我尝试使用“-xml”参数,但它不适用于 dotnet 测试。
我是否必须在 Azure DevOps 的构建管道中添加任务才能从 Cake 脚本中获取 XUnit 结果?
如何在 Azure DevOps 中查看 XUnit 测试?
您可以导出为 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
}
)
我正在尝试报告 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
}
);
});
Powershell 脚本通过构建管道中的 Powershell 任务 运行 Cake 脚本。
我必须如何对 Cake 中的 运行 dotnetcoretest 进行操作才能使其报告为我可以使用 Azure DevOps 的格式和位置?我尝试使用“-xml”参数,但它不适用于 dotnet 测试。
我是否必须在 Azure DevOps 的构建管道中添加任务才能从 Cake 脚本中获取 XUnit 结果?
如何在 Azure DevOps 中查看 XUnit 测试?
您可以导出为 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
}
)