gitlab_ci.yml展示单元测试报告 (FREE)

这篇具有很好参考价值的文章主要介绍了gitlab_ci.yml展示单元测试报告 (FREE)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CI/CD 流水线通常包含验证您的代码的测试作业。 如果测试失败,流水线将失败并通知用户。处理合并请求的人必须检查作业日志并查看测试失败的地方,以便可以修复它们。

您可以将作业配置为使用单元测试报告,极狐GitLab 会显示有关合并请求的报告,以便更轻松、更快速地识别故障,而无需检查整个日志。单元测试报告目前仅支持 JUnit 报告格式的测试报告。

如果您不使用合并请求但仍希望在不搜索作业日志的情况下查看单元测试报告输出,则流水线中提供完整的单元测试报告详细视图。

考虑以下工作流程:

  1. 您的默认分支坚如磐石,您的项目正在使用极狐GitLab CI/CD,并且您的流水线表明没有任何损坏。
  2. 您团队中的某个人提交了合并请求,测试失败并且流水线获得已知红色图标。要进行更多调查,您必须查看作业日志来找出测试失败的原因,这些日志通常包含数千行。
  3. 您配置单元测试报告,极狐GitLab 立即收集并在合并请求中公开它们,您不再需要在作业日志中搜索。
  4. 您的开发和调试工作流程变得更容易、更快、更高效。

工作原理

首先,极狐GitLab Runner 上传所有 JUnit 报告格式 XML 文件到极狐GitLab,作为产物。然后,当您访问合并请求时,极狐GitLab 开始比较 head 和 base 分支的 JUnit 报告格式 XML 文件,其中:

  • base 分支是目标分支(通常是默认分支)。
  • head 分支是源分支(每个合并请求中的最新流水线)。

报告面板有一个摘要,显示有多少测试失败、有多少错误以及有多少已修复。如果由于 base 分支的数据不可用而无法进行比较,则面板仅显示 head 的失败测试列表。

有四种类型的结果:

  1. **新失败的测试:**测试用例在 base 分支上通过,在 head 分支上失败
  2. **新遇到的错误:**测试用例在 base 分支上通过,但由于 head 分支上的测试错误而失败
  3. **现有故障:**测试用例在 base 分支上失败,在 head 分支上失败
  4. 已解决的故障: 测试用例在 base 分支上失败,在 head 分支上通过

面板中的每个条目都显示了上面列表中的测试名称及其类型。单击测试名称会打开一个窗口,其中包含其执行时间和错误输出的详细信息。

gitlab_ci.yml展示单元测试报告 (FREE),CICD,自动化测试,junit,单元测试

最近失败的次数

如果过去 14 天内项目的默认分支中的测试失败,则会为该测试显示一条消息,如 Failed {n} time(s) in {default_branch} in the last 14 days

如何设置

要在合并请求中启用单元测试报告,您必须在 .gitlab-ci.yml 中添加 artifacts:reports:junit,并指定生成测试报告的路径。 报告必须是 .xml 文件,否则极狐GitLab 返回错误 500。

在以下 Ruby 示例中,test 阶段的作业运行,系统从作业中收集单元测试报告。作业执行后,XML 报告作为产物存储在极狐GitLab 中,结果显示在合并请求部件中。

## Use https://github.com/sj26/rspec_junit_formatter to generate a JUnit report format XML file with rspec
ruby:
  stage: test
  script:
    - bundle install
    - bundle exec rspec --format progress --format RspecJunitFormatter --out rspec.xml
  artifacts:
    when: always
    paths:
      - rspec.xml
    reports:
      junit: rspec.xml

testng生成的target下, /surefire-reports/TEST-TestSuite.xml 可以用于展示在gitlab网页中

testng生成的target下, /surefire-reports/TEST-TestSuite.xml 可以用于展示在gitlab网页中

testng生成的target下, /surefire-reports/TEST-TestSuite.xml 可以用于展示在gitlab网页中

  artifacts:
        paths:
            - target/
        expire_in: 1 week
        reports:
            junit: target/surefire-reports/TEST-TestSuite.xml

## Use https://github.com/sj26/rspec_junit_formatter to generate a JUnit report format XML file with rspec
ruby:
  stage: test
  script:
    - bundle install
    - bundle exec rspec --format progress --format RspecJunitFormatter --out rspec.xml
  artifacts:
    when: always
    paths:
      - rspec.xml
    reports:
      junit: rspec.xml

要使单元测试报告输出文件可浏览,请将它们包含在 artifacts:paths 关键字中,如示例中所示。 即使作业失败(例如,如果测试未通过)也要上传报告,请使用 artifacts:when:always 关键字。

JUnit 报告格式 XML 文件中不能有多个具有相同名称和类的测试。

在 15.0 及更早版本中,来自 parallel:matrix 作业的测试报告被聚合在一起,可能会导致某些报告信息不显示。 在 15.1 及更高版本中,此 bug 已修复,并显示所有报告信息。

在极狐GitLab 上查看单元测试报告

如果生成 JUnit 报告格式 XML 文件并将其作为流水线的一部分上传,则可以在流水线详细信息页面中查看这些报告。此页面上的 测试 选项卡显示从 XML 文件报告的测试套件和案例列表。

gitlab_ci.yml展示单元测试报告 (FREE),CICD,自动化测试,junit,单元测试

您可以查看所有已知的测试套件并选择其中的每一个以查看更多详细信息,包括组成该套件的案例。

单元测试报告解析错误

引入于 13.10 版本

如果解析 JUnit 报告 XML 导致错误,作业名称旁边会显示一个指示符。将鼠标悬停在图标上会在工具提示中显示解析器错误。如果多个解析错误来自分组作业,仅显示该组中的第一个错误。

gitlab_ci.yml展示单元测试报告 (FREE),CICD,自动化测试,junit,单元测试

极狐GitLab 不会解析非常大的节点 的 JUnit 报告。

在极狐GitLab 上查看 JUnit 屏幕截图

将您的屏幕截图作为产物上传到极狐GitLab。如果 JUnit 报告格式 XML 文件包含 attachment 标签,极狐GitLab 会解析附件。注意:

  • attachment 标签必须包含您上传的屏幕截图的 $CI_PROJECT_DIR 的相对路径。例如:

    <testcase time="1.00" name="Test">
      <system-out>[[ATTACHMENT|/path/to/some/file]]</system-out>
    </testcase>
  • 您应该将上传屏幕截图的作业设置为 artifacts:when: always,以便在测试失败时仍然上传屏幕截图。

测试用例附件的链接出现在流水线测试报告的测试用例详细信息中。文章来源地址https://www.toymoban.com/news/detail-516373.html

到了这里,关于gitlab_ci.yml展示单元测试报告 (FREE)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 单元测试|unittest生成测试报告

    测试报告为测试结果的统计即展示,是自动化测试不可或缺的一部分,利用unittest 可以生成测试报告。 使用第三方 HTMLTestRunner 执行测试用例集,生成网页版测试报告 HTMLTestRunner是Python标准库的unittest模块的一个扩展,在使用该模块之前 要下载HTMLTestRunner.py文件,并将该文件保

    2024年02月09日
    浏览(37)
  • 在 CI/CD流水线中运行自动化单元测试的4个原因

    目录 什么是单元测试? C#中的单元测试示例 我需要在CI/CD 流水线中运行自动化测试吗? 开发人员代码验证反馈循环 预验证 步步为营 减少“另一个开发人员写了这段代码”的问题 单元测试 什么是单元测试? 单元测试是一小段代码,用于测试应用程序编写的代码的逻辑。单

    2024年02月16日
    浏览(91)
  • 测试人进阶技能:单元测试报告应用指南

    为什么需要单元测试 从产品角度而言,常规的功能测试、系统测试都是站在产品局部或全局功能进行测试,能够很好地与用户的需要相结合,但是缺乏了对产品研发细节(特别是代码细节的理解)。 从测试人员角度而言,功能测试和系统测试以及其他性能测试等等对测试人

    2024年02月13日
    浏览(35)
  • CI/CD 流水线 (FREE)

    流水线是持续集成、交付和部署的顶级组件。 流水线包括: 工作,定义 做什么 。例如,编译或测试代码的作业。 阶段,定义 何时 运行作业。例如,在编译代码的阶段之后运行测试的阶段。 作业由 runners 执行。如果有足够多的并发运行程序,同一阶段的多个作业将并行执

    2024年02月10日
    浏览(69)
  • 在eclipse里进行Junit单元测试并生成测试报告

    eclipse里自带Junit,不需要下载相应jar包,所以你只需要新建一个Java Project,在里面写你想要测试的java类文件就可以了。 首先,创建一个Java Project: 写一个计算器类Calculator作为要测试的类: 代码如下: 然后我们就可以来进行单元测试啦~ 这里选Junit4也是可以的,然后 Finish

    2024年02月05日
    浏览(40)
  • 软件质量保证与测试技术实验报告(四)——JUnit单元测试

    1.实验名称——JUnit单元测试 2.实验目的 (1)利用Junit进行单元测试,理解单元测试的任务、同时理解这类测试工具的实现原理; (2)理解断言的基本概念和断言测试方法; 3.实验内容 题目1:完成课件中Score_List的单元测试。 题目2:这是一个简单的计算器类——Computer,能

    2023年04月23日
    浏览(46)
  • testng+reportng进行单元测试并生成好看的报告

    在pom.xml里面导包 测试代码 如果使用testng.xml 默认的报告模板, 报告看起来不那么花哨, 如下图: 为了花哨点, 可以使用ReportNg 新建一个TestReport.java template文件 不勾选\\\"使用默认报告\\\", 直接运行

    2024年02月07日
    浏览(53)
  • 途游游戏 x 极狐GitLab “通关” DevOps :单元测试从无到优,覆盖率 0→80%

    目录 4 个工具孤岛 → 极狐GitLab 全家桶, 被动的「人找进度」 → 高效的「进度找人」 把 Code Review 做扎实 代码质量「向左移」,修复成本「往下降」 从无到「优」 自动执行单元测试,覆盖率 0→80% 你喜欢玩游戏吗? 最近在玩什么游戏? 你是哪款游戏的“死忠粉”呢? 人

    2024年02月13日
    浏览(55)
  • 【基于 GitLab 的 CI/CD 实践】01、GitLab CI/CD 基础概念

    目录 一、为什么要做 CI/CD ? 1.1 背景-传统的应用开发发布模式 问题 1.2 持续集成与持续交付 持续集成(CI) 持续交付(CD) 持续部署(CD) 1.3 CI/CD 的价值体现 1.4 推荐常用的 CI/CD 工具 Jenkins GitLab 二、GitLab CI/CD 功能简介 2.1 GitLab 内置持续集成功能 持续集成(CI) 连续交付(

    2024年02月16日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包