ContainerStructureTest@0 - 容器结构测试 v0 任务

使用 container-structure-test (https://github.com/GoogleContainerTools/container-structure-test) 基于四类测试(命令测试、文件存在测试、文件内容测试和元数据测试)来验证映像的结构。

语法

# Container Structure Test v0
# Uses container-structure-test (https://github.com/GoogleContainerTools/container-structure-test) to validate the structure of an image based on four categories of tests - command tests, file existence tests, file content tests and metadata tests.
- task: ContainerStructureTest@0
  inputs:
  # Container Repository
    dockerRegistryServiceConnection: # string. Required. Docker registry service connection. 
    repository: # string. Required. Container repository. 
    #tag: '$(Build.BuildId)' # string. Tag. Default: $(Build.BuildId).
    configFile: # string. Required. Config file path. 
    #testRunTitle: # string. Test run title. 
    #failTaskOnFailedTests: false # boolean. Fail task if there are test failures. Default: false.

输入

dockerRegistryServiceConnection - Docker 注册表服务连接
string. 必需。

指定 Docker 注册表服务连接。 所用命令需要使用注册表进行身份验证时必需。


repository - 容器存储库
string. 必需。

存储库的名称。


tag - 标记
string. 默认值:$(Build.BuildId)

标记用于从 docker 注册表服务连接拉取映像。


configFile - 配置文件路径
string. 必需。

包含容器结构测试的配置文件路径,采用 .yaml 或 .json 文件格式。


testRunTitle - 测试运行标题
string.

指定测试运行的名称。


failTaskOnFailedTests - 如果存在测试失败,则使任务失败
boolean. 默认值:false

如果有任何测试失败,则任务失败。 选中此选项以在检测到测试故障时使任务失败。


任务控制选项

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

输出变量

无。

备注

此任务帮助运行容器结构测试并将测试结果发布到 Azure Pipelines,更提供全面的测试报告和分析体验。

注意

这是一项早期预览功能。 在即将开始的冲刺中还将推出更多功能。

容器结构测试提供了一个强大的框架来验证容器映像的结构。 这些测试可用于检查映像中命令的输出,以及验证文件系统的元数据和内容。 通过独立二进制文件或 Docker 映像可运行测试。

此框架中的测试通过 YAML 或 JSON 配置文件指定。 可以在单个测试运行中指定多个配置文件。 配置文件将由测试运行程序加载,随后测试运行程序会按顺序执行这些测试。 在此配置文件中,可以编写四种类型的测试:

  • 命令测试(测试发出的特定命令的输出/错误)
  • 文件存在测试(确保映像的文件系统中存在或不存在文件)
  • 文件内容测试(确保映像的文件系统中的文件包含或不包含特定内容)
  • 元数据测试,单数(确保某个容器元数据正确)

生成、测试和发布测试

容器结构测试任务可以添加到经典管道以及统一管道 (多阶段) & 基于 YAML 的管道中。

在新的基于 YAML 的统一管道中,可以在窗口中搜索任务。

统一管道中的容器测试

添加任务后,需要设置配置文件路径、Docker 注册表服务连接、容器存储库和标记(如果需要)。 在基于 yaml 的管道中创建任务输入。

基于 YAML 的管道中的容器测试

YAML 文件

YAML 文件

steps:
- task: ContainerStructureTest@0
  displayName: 'Container Structure Test '
  inputs:
    dockerRegistryServiceConnection: 'Container_dockerHub'
    repository: adma/hellodocker
    tag: v1
    configFile: /home/user/cstfiles/fileexisttest.yaml

查看测试报告

执行任务后,可以直接转到测试选项卡查看完整报告。 已发布的测试结果会显示在管道摘要的测试选项卡中,它有助于评估管道质量、查看跟踪数据、排查故障和确定故障原因。

测试报告页面

要求

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