PublishCodeCoverageResults@1 - 发布代码覆盖率结果 v1 任务

使用此任务发布生成中的 Cobertura 或 JaCoCo 代码覆盖率结果。

重要

此任务已弃用。 建议用户切换到 PublishCodeCoverageResults@2。 有关详细信息,请参阅 新版本的发布代码覆盖率结果任务

使用此任务发布生成中的 Cobertura 或 JaCoCo 代码覆盖率结果。

语法

# Publish code coverage results v1
# [DEPRECATION WARNING! Users are recommended to switch to version 2*.] Publish Cobertura or JaCoCo code coverage results from a build.
- task: PublishCodeCoverageResults@1
  inputs:
    codeCoverageTool: 'JaCoCo' # 'Cobertura' | 'JaCoCo'. Required. Code coverage tool. Default: JaCoCo.
    summaryFileLocation: # string. Required. Summary file. 
    #pathToSources: # string. Path to Source files. 
    #reportDirectory: # string. Report directory. 
    #additionalCodeCoverageFiles: # string. Additional files. 
    #failIfCoverageEmpty: false # boolean. Fail when code coverage results are missing. Default: false.
# Publish code coverage results v1
# Publish Cobertura or JaCoCo code coverage results from a build.
- task: PublishCodeCoverageResults@1
  inputs:
    codeCoverageTool: 'JaCoCo' # 'Cobertura' | 'JaCoCo'. Required. Code coverage tool. Default: JaCoCo.
    summaryFileLocation: # string. Required. Summary file. 
    #pathToSources: # string. Path to Source files. 
    #reportDirectory: # string. Report directory. 
    #additionalCodeCoverageFiles: # string. Additional files. 
    #failIfCoverageEmpty: false # boolean. Fail when code coverage results are missing. Default: false.
# Publish Code Coverage Results v1
# Publish Cobertura or JaCoCo code coverage results from a build.
- task: PublishCodeCoverageResults@1
  inputs:
    codeCoverageTool: 'JaCoCo' # 'Cobertura' | 'JaCoCo'. Required. Code coverage tool. Default: JaCoCo.
    summaryFileLocation: # string. Required. Summary file. 
    #reportDirectory: # string. Report directory. 
    #additionalCodeCoverageFiles: # string. Additional files. 
    #failIfCoverageEmpty: false # boolean. Fail when code coverage results are missing. Default: false.
# YAML Syntax is not supported in TFS 2018.
# Use the classic designer to add and configure tasks.
# See the following Inputs section for details on the inputs that this task supports.

输入

codeCoverageTool - 代码覆盖率工具
string. 必需。 允许的值:CoberturaJaCoCo。 默认值:JaCoCo

指定生成代码覆盖率结果的工具。


summaryFileLocation - 摘要文件
string. 必需。

指定包含代码覆盖率统计信息的摘要文件的路径,例如行、方法和类覆盖率。 多个摘要文件合并到单个报表中。 该值可能包含最小匹配模式。 例如:$(System.DefaultWorkingDirectory)/MyApp/**/site/cobertura/coverage.xml


pathToSources - 源文件的路径
string.

当覆盖率 XML 报表不包含源文件的绝对路径时,需要指定源文件的路径。 例如,JaCoCo 报表不使用绝对路径,因此在为 Java 应用发布 JaCoCo 覆盖范围时,模式类似于 $(System.DefaultWorkingDirectory)/MyApp/src/main/java/。 此输入应指向主机上源文件的绝对路径。 例如 $(System.DefaultWorkingDirectory)/MyApp/

如果在 Docker 容器中运行测试,则可以使用此输入。

可以通过用 字符分隔每个列表项 ; 来添加多个源,例如 pathToSources: $(System.DefaultWorkingDirectory)/path/to/first/source;$(System.DefaultWorkingDirectory)/path/to/second/source


reportDirectory - 报表目录
string.

指定代码覆盖率 HTML 报表目录的路径。 已发布报表目录,稍后可作为生成的项目查看。 该值可能包含最小匹配模式。 例如:$(System.DefaultWorkingDirectory)/MyApp/**/site/cobertura


additionalCodeCoverageFiles - 其他文件
string.

指定文件路径模式,并记下要作为生成项目发布的任何其他代码覆盖率文件。 该值可能包含最小匹配模式。 例如:$(System.DefaultWorkingDirectory)/**/*.exec


failIfCoverageEmpty - 缺少代码覆盖率结果时失败
boolean. 默认值:false

如果代码覆盖率未生成任何要发布的结果,则任务失败。


任务控制选项

除了任务输入,所有任务都有控制选项。 有关详细信息,请参阅 控制选项和常见任务属性

输出变量

无。

备注

重要

此任务已弃用。 建议用户切换到 PublishCodeCoverageResults@2。 有关详细信息,请参阅 新版本的发布代码覆盖率结果任务

注意

有关 发布代码覆盖率结果任务 V2 中的新功能以及从 V1 迁移到 V2 的信息,请参阅 Azure DevOps 博客 上的新版本发布代码覆盖率结果任务。

在生成管道中使用此任务,将运行测试时产生的代码覆盖率结果发布到 Azure Pipelines 或 TFS,以获得覆盖率报表。 此任务支持 CoberturaJaCoCo 之类的常见覆盖率结果格式。

此任务仅在生成管道中受支持,在发布管道中不受支持。

Visual Studio 测试.NET CoreAntMavenGulpGrunt 等任务还提供将代码覆盖率数据发布到管道的选项。 如果使用这些任务,则不需要在管道中单独执行“发布代码覆盖率结果”任务。

若要生成 HTML 代码覆盖率报告,代理上需要 dotnet Framework 2.0.0 或更高版本。 dotnet 文件夹必须位于环境路径中。 如果有多个包含 dotnet 的文件夹,则版本为 2.0.0 的文件夹必须在路径列表中的任何其他文件夹之前。

使用 YAML 将 JavaScript 与伊斯坦布尔配合使用的代码覆盖率结果

若要使用 YAML 在伊斯坦布尔发布 JavaScript 的代码覆盖率结果,请参阅这些主题的生态系统中的 自定义 JavaScript 部分,其中还包括其他语言的示例。

请参阅 使用 Cobertura 发布代码覆盖率的示例

Docker

对于使用 Docker 的应用,生成和测试可以在容器中运行,并在容器中生成代码覆盖率结果。 若要将结果发布到管道,应将生成的项目提供给 “发布代码覆盖率结果” 任务。 有关参考,可以在 Docker 的“使用 Docker 文件生成、测试和发布结果 ”部分下查看发布 测试结果的类似示例。

查看结果

若要查看管道中的代码覆盖率结果,请参阅 查看代码覆盖率结果

将多个文件作为输入提供给管道中使用的单个或多个任务时,是否合并代码覆盖率数据?

目前,此任务提供的代码覆盖率报告功能有限,并且不会合并覆盖率数据。 如果提供多个文件作为任务的输入,则只考虑第一个匹配项。 如果在管道中使用多个发布代码覆盖率任务,则会显示最后一个任务的摘要和报表。 将忽略之前上传的任何数据。

已知问题

发布代码覆盖率结果任务生成并发布 HTML 报表,这是一组从main index.html 文件链接的 HTML 文件。 如果代码覆盖率选项卡无法显示代码覆盖率报表,请检查 index.html 文件的大小是否接近或大于 7 MB。 完成以下步骤来检查文件大小。 然后,如果文件大小接近或大于 7 MB,则可以使用以下解决方法查看覆盖率报告。

  1. 选择生成“摘要”选项卡,然后选择已发布的链接:

    显示“摘要”窗格中已发布链接的屏幕截图。

  2. 在“代码覆盖率报表_*”项目旁边,选择“下载项目”:

    显示“项目”下代码覆盖率报表的“下载项目”链接的屏幕截图。

  3. 下载代码覆盖率报表后,提取 .zip 文件。

  4. 在代码覆盖率报表中,检查 index.html 的大小,以帮助确定文件大小是否导致了此处所述的问题。

  5. 在浏览器中打开 index.html 以查看代码覆盖率报表。

要求

要求 说明
管道类型 YAML,经典内部版本
运行平台 Agent、DeploymentGroup
需求
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任意
可设置变量 此任务有权 设置以下变量:已禁用设置变量
代理版本 2.182.1 或更高版本
任务类别 测试
要求 说明
管道类型 YAML,经典版本
运行平台 Agent、DeploymentGroup
需求
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任意
可设置变量 任意
代理版本 2.102.0 或更高版本
任务类别 测试

另请参阅

  • 发布测试结果