aws codebuild 使用和配置codebuild测试报告

news2024/12/29 9:00:40

参考资料

  • 使用 Amazon CodeBuild 中的测试报告
  • 在 CodeBuild 使用AWS CLI样本中创建测试报告
  • aws-codebuild-samples

在codebuild构建过程中获取有关在构建期间运行的测试的详细信息。

codebuild测试报告

通过在buildspec.yaml中配置报告组,运行构建项目时系统将运行测试用例并创建测试报告。不需要在运行测试之前创建报告组。

  • 如果指定报表组名称, CodeBuild 当您运行报告时创建报告组
  • 如果要使用已存在的报告组,需要在buildspec 文件中指定其 arn

测试报告

报告buildspec.yaml配置

通过测试报告可以发现并解决构建过程中存在的问题。报告创建后30天过期,也可以无限期存储在s3桶(额外权限配置)。

测试报告支持以下格式

  • Cucumber JSON (.json)
  • JUnit XML (.xml)
  • NUnit XML (.xml)
  • NUnit3 XML (.xml)
  • TestNG XML (.xml)
  • Visual Studio TRX (.trx)

测试报告相关权限

https://docs.aws.amazon.com/zh_cn/codebuild/latest/userguide/test-permissions.html#test-permissions-required

对于新创建的项目默认托管策略中已经配置权限。对于自定义的构建项目,codebuild角色需要以下权限

  • CreateReportGroup

  • CreateReport

  • UpdateReport

  • BatchPutTestCases

  • BatchPutCodeCoverages(代码覆盖率报告)

代码覆盖率报告

包括line和branch覆盖

  • line coverage = (total lines covered)/(total number of lines)
  • branch coverage = (total branches covered)/(total number of branches)

代码覆盖率报告支持以下格式

  • JaCoCo XML
  • SimpleCov JSON
  • Clover XML
  • Cobertura XML

测试项目

aws sample仓库提供了sample项目,对于不同场景下的构建环境都提供了demo

手动创建测试组

$ cat > CreateReportGroupInput.json << EOF
{
  "name": "test-report",
  "type": "TEST",
  "exportConfig": {
    "exportConfigType": "S3",
    "s3Destination": {
      "bucket": "codebuild-bjs-output-bucket",
      "path": "report",
      "packaging": "NONE"
    }
  }
}
EOF
$ aws codebuild create-report-group --cli-input-json file://CreateReportGroupInput.json
reportGroup:
  arn: arn:aws-cn:codebuild:cn-north-1:xxxxxx:report-group/test-report
  exportConfig:
    exportConfigType: S3
    s3Destination:
      bucket: codebuild-bjs-output-bucket
      bucketOwner: 'xxxxxxxxx'
      encryptionKey: arn:aws-cn:kms:cn-north-1:xxxxxxxxx:alias/aws/s3
      packaging: NONE
      path: report
  name: test-report
  status: ACTIVE
  type: TEST

示例buildspec.yaml

version: 0.2
phases:
  install:
    runtime-versions:
      # java: openjdk8
      # python: 3.7
  build:
    commands:
    - echo Running tests 
    - <enter commands to run your tests>
  reports:
    # <report-name-or-arn>:
    arn:aws-cn:codebuild:cn-north-1:xxxxxxx:report-group/test-report:
      files:
      - '<test-result-files>'
      base-directory: '<optional-base-directory>'
      discard-paths: false

nodejs项目测试

https://github.com/istanbuljs/nyc

https://mochajs.bootcss.com/

测试框架 Mocha 实例教程

sample项目是一个计算的四则运算计算器

$ npm test
> simple-calculator-service@1.0.0 test
> ./node_modules/nyc/bin/nyc.js --reporter=lcov ./node_modules/mocha/bin/mocha

  Calculator Tests
    Addition Tests
      ✓ returns 1 + 1 = 2
      ✓ returns 1 + -1 = 0
    Subtraction Tests
      ✓ returns 2 - 1 = 1
      ✓ returns 1 - -1 = 2
    Multiply Tests
      ✓ returns 2 * 2 = 4
      ✓ returns 0 * 4 = 4

  Calculator service
    ✓ it should connect to the redis cache
    ✓ it should add two numbers

  8 passing (35ms)

查看测试报告

$ ./node_modules/mocha/bin/mocha --reporters # report支持的格式
    dot - dot matrix
    doc - html documentation
    spec - hierarchical spec list
    json - single json object
    progress - progress bar
    list - spec-style listing
    tap - test-anything-protocol
    landing - unicode landing strip
    xunit - xunit reporter
    min - minimal reporter (great with --watch)
    json-stream - newline delimited json events
    markdown - markdown documentation (github flavour)
    nyan - nyan cat!
$ ./node_modules/mocha/bin/mocha --reporter=xunit
<testsuite name="Mocha Tests" tests="8" failures="0" errors="0" skipped="0" timestamp="Mon, 16 Jan 2023 17:16:08 GMT" time="0.032">
<testcase classname="Calculator Tests Addition Tests" name="returns 1 + 1 = 2" time="0.001"/>
<testcase classname="Calculator Tests Addition Tests" name="returns 1 + -1 = 0" time="0"/>
<testcase classname="Calculator Tests Subtraction Tests" name="returns 2 - 1 = 1" time="0"/>
<testcase classname="Calculator Tests Subtraction Tests" name="returns 1 - -1 = 2" time="0"/>
<testcase classname="Calculator Tests Multiply Tests" name="returns 2 * 2 = 4" time="0"/>
<testcase classname="Calculator Tests Multiply Tests" name="returns 0 * 4 = 4" time="0.001"/>
<testcase classname="Calculator service" name="it should connect to the redis cache" time="0"/>
<testcase classname="Calculator service" name="it should add two numbers" time="0.024"/>
</testsuite>

修改buildspec.yml

version: 0.2

phases:
  install:
    commands:
      - npm install
  build:
    commands:
      - ./node_modules/mocha/bin/mocha --reporter=xunit > report.xml
artifacts:
  files:
    - '**/*'
reports:
  mocha-reports:
    files:
      - "report.xml"
    file-format: "JUNITXML"

创建codebuild项目并启动构建,在控制台查看测试结果

在这里插入图片描述

感觉codebuild的测试报告功能比较鸡肋,支持的格式太少了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/168419.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【代码随想录】96.不同的二叉搜索树

96.不同的二叉搜索树 思路 n为1的时候有一棵树&#xff0c;n为2有两棵树&#xff0c;这个是很直观的。 n为3的时候&#xff0c;有哪几种情况。 当1为头结点的时候&#xff0c;其右子树有两个节点&#xff0c;看这两个节点的布局&#xff0c;是不是和 n 为2的时候两棵树的布…

控价公司可以帮我们做什么?什么时候需要找第三方控价公司?

如果&#xff0c;我们品牌的销售渠道遭遇了低价乱价、窜货、侵权、假冒等问题&#xff0c;扰乱了我们品牌的渠道秩序&#xff0c;或者是我们在品牌发展的过程中&#xff0c;想通过对行业和竞品的了解来明确发展方向和策略&#xff0c;而自己又分身乏术或无从下手&#xff0c;这…

车辆信息查询

要想查一辆汽车的信息&#xff0c;除了去各个汽车平台上查询&#xff0c;比如汽车之家、易车网、懂车帝等&#xff0c;还可以使用“汽车公告查询”。 通过常规网页百度搜索引擎&#xff0c;输入关键字“汽车公告查询”&#xff0c;就会获取到相关搜索结果&#xff0c;汽车公告查…

C进阶_内存库函数

目录 memcpy 模拟实现memcpy memmove 模拟实现memmove memcmp memcpy 它的函数原型为&#xff1a; void * memcpy ( void * destination, const void * source, size_t num ); 函数memcpy从source的位置开始向后复制num个字节的数据到destination的内存位置。 这个函数…

104、【树与二叉树】leetcode ——98. 验证二叉搜索树:递归法[先序+中序+后序]+迭代法(C++版本)

题目描述 原题链接&#xff1a;98. 验证二叉搜索树 解题思路 BST的特点是&#xff1a;当前结点的值&#xff0c;比左子树中的全部结点都大&#xff0c;比右子树中全部结点都小。在代码实现中&#xff0c;要注意不要对比的是某一结点和某一侧的全部值之间的关系&#xff0c;不…

【论文阅读】CenterNet

论文题目&#xff1a;Objects as Points&#xff08;CVPR2019&#xff09; 论文地址&#xff1a;https://arxiv.org/pdf/1904.07850.pdf 发布时间&#xff1a;2019.4.16 机构&#xff1a;UT Austin&#xff0c;UC Berkeley 代码&#xff1a;https://github.com/xingyizhou/…

小程序事件基础

小程序事件--基础小程序事件事件简介小程序事件—事件传参事件对象属性target和currentTarget事件对象属性获取和设置data数据获取&设置data获取和设置data数据—进阶小程序的渲染层与逻辑层小程序事件 事件简介 事件是视图层到逻辑层的通讯方式。负责将用户对于的页面的操…

云上的米开朗基罗:在不确定时代,寻找建筑般的确定性

文艺复兴三杰之一的米开朗基罗&#xff0c;被称为“天才建筑师”。其实他一生留下的建筑并不多&#xff0c;仅仅有美第奇礼拜堂、卡比多广场、圣彼得大教堂穹顶等寥寥几座。但米开朗基罗却凭借对建筑层次与结构的精妙把握&#xff0c;影响了此后数百年的建筑风格。很多人认为&a…

【代码随想录】动态规划:关于01背包问题,你该了解这些!(滚动数组)

01 背包 有n件物品和一个最多能背重量为w的背包 第i件物品的重量是weight[i]&#xff0c; 得到的价值是value[i] &#xff0c; 每件物品只能用一次&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 每一件物品其实只有两个状态&#xff0c;取或者不取&#xff0c;所以…

win下编译opencv+libjpeg-turbo

文章目录前言编译环境下载opencv和jpeg-turbo源码编译jpeg-turbo编译opencv失败&#xff1f;那就直接调用jpeg-turbo库进行编解码前言 opencv默认自带第三方jpeg编解码库&#xff0c;但其性能一般&#xff0c;对高性能需求的程序来说是不适合的&#xff0c;因此我们可以把jpeg…

设计模式学习(八):Proxy代理模式

一、什么是Proxy模式 Proxy是“代理人”的意思&#xff0c;它指的是代替别人进行工作的人。当不一定需要本人亲自进行工作时&#xff0c;就可以寻找代理人去完成工作。但代理人毕竟只是代理人&#xff0c;能代替本人做的事情终究是有限的。因此&#xff0c;当代理人遇到无法自己…

文件上传oss,并查询上传进度(SpringBoot+Redis+Oss+Swagger3)

文章目录诉求技术选型pom配置项目结构文件树图示结构代码实现配置相关配置文件yamlSwagger3配置跨域问题配置oss相关ServiceControllerApplicationSwagger接口操作获取上传文件标识号获取文件上传进度小结诉求 将文件上传到oss&#xff0c;并实时监听上传进度&#xff0c;并将进…

【javaSE】中基本类型和引用类型对象的比较及PriorityQueue中的比较方法

写博客是为了提升自己&#xff0c;也是为了展现自己的学习成果&#xff0c;坚持!坚持!坚持&#xff01;未来是什么样的&#xff0c;闯一闯就知道啦。喜欢就留个关注吧&#xff01;&#xff01;! 目录 一、java对象的比较 1.1java中基本类型的比较 1.2引用对象的比较 1.3引用…

使用云端的GPU进行yolov5的训练

前言本文介绍了使用云端GPU进行yolov5训练环境配置的过程一、创建实例这里使用的是恒源云的GPU服务器&#xff0c;官方网址为恒源云_GPUSHARE-恒源智享云他的用户文档为Tmux - 恒源云用户文档一般的问题在用户文档中都可以找到解决办法。注册并登录后的界面如下图所示。点击云市…

c++11 标准模板(STL)(std::forward_list)(十)

定义于头文件 <forward_list> template< class T, class Allocator std::allocator<T> > class forward_list;(1)(C11 起)namespace pmr { template <class T> using forward_list std::forward_list<T, std::pmr::polymorphic_…

UPerNet:Unified Perceptual Parsing for Scene Understanding论文解读

Unified Perceptual Parsing for Scene Understanding 论文&#xff1a;[1807.10221] Unified Perceptual Parsing for Scene Understanding (arxiv.org) 代码&#xff1a;CSAILVision/unifiedparsing: Codebase and pretrained models for ECCV’18 Unified Perceptual Parsi…

第二章.线性回归以及非线性回归—岭回归

第二章.线性回归以及非线性回归 2.12 岭回归&#xff08;Ridge Regression&#xff09; 1.前期导入&#xff1a; 1).标准方程法[w(XTX)-1XTy]存在的缺陷&#xff1a; 如果数据的特征比样本点还多&#xff0c;数据特征n&#xff0c;样本个数m&#xff0c;如如果n>m&#xf…

5种气血不足的面相

我们常用“气色好”形容人良好的健康状态&#xff0c;反之&#xff0c;气血不足就是不健康的表现。想知道自己是否气血不足&#xff0c;可以从以下几种表现中判断。眼白黄&#xff1a;所谓人老珠黄&#xff0c;就是指眼白的颜色变得浑浊、发黄、有血丝&#xff0c;很可能气血不…

网络编程基础(1)

1 OSI七层模型&#xff08;理论&#xff09; 七层模型&#xff0c;亦称OSI&#xff08;Open System Interconnection&#xff09;。参考模型是国际标准化组织&#xff08;ISO&#xff09;制定的一个用于计算机或通信系统间互联的标准体系&#xff0c;一般称为OSI参考模型或七层…

cycle_gan使用教程

junyanz/pytorch-CycleGAN-and-pix2pix: Image-to-Image Translation in PyTorch (github.com) 如果是用cycle_gan 数据集 /数据集文件夹名&#xff0c;下面四个子文件名 testA testB trainA trainB trainA是A风格图片&#xff0c;trainB是B风格图片。 训练参数 test…