带有套件级别消息输出的PublishTestResults

时间:2019-04-30 07:09:43

标签: azure azure-devops azure-pipelines azure-pipelines-release-task

我很清楚,我目前无法做的事情,所以我正在寻找解决方法。


首先,假设基于微服务的高度模块化的应用程序系统。每个微服务都在其构建管道中运行自己的单元测试,并将结果发布到Azure DevOps-目前没有问题。

但是,需要在正确部署的应用程序系统上运行一些集成(几乎端到端)测试(简称为集成测试套件)。这是在指定的环境(称为集成测试环境)上完成的。该测试套件将在几种不同的场景中执行,因此输出需要反映出来(这仅表示如果有4个场景,则测试结果输出文件将具有4个测试套件)。

除此之外,应用程序系统版本与其测试结果之间必须存在直接可见的链接。

为实现此目的,有一个发布管道,前三个阶段是:部署到DEV,部署到INT和运行集成测试。

自然,PublishTestResults任务用于很好地概述集成测试结果。集成测试协调器应用程序正在生成一个JUnit XML /场景,并在测试结束时将其提供给管道。


这就是问题所在:有必要提供有关在每种情况/套件中运行的测试的某些统计信息(比在Z秒内成功完成X / Y测试更有趣的东西)

我知道Jenkins CI似乎遵循了Dirk Jagdmann描述的JUnit XML format,即<testsuite>元素可以有一个<system-out>元素,并且该元素会出现在测试套件的可视化中。

不幸的是(!),Azure DevOps PublishTestResults task仅读取单个<system-out>元素下的<testcase>(上面的链接显示了结果格式映射)。具有讽刺意味的是,测试套件和测试用例刀片的渲染方式几乎相同-它们都具有Debug部分,在其中您可以用Error messageStack Trace等(例如,不会折叠)被{/ {1}}读取/填充)。

JUnit格式扩展名也是如此,该扩展名允许在XML中引用额外的附件文件。

现在,如果这是一个构建管道,我会不在意,只需使用<testsuite>任务添加一些.TXT附件(每个方案/套件一个)并完成。但是,此任务不能在发布管道中使用。


我确实需要每个套件的扩展摘要/统计信息,并且我无法在XML中的某些地方添加它们。可以在采取了一些可能晦涩的步骤后将其下载。这样会自动排除在其他地方上载它们的权限-如果CI / CD位于Azure DevOps中,则有关它的所有内容都应保留在其中。

我完全控制测试结果XML的生成。

0 个答案:

没有答案