当前位置: 首页 > news >正文

给github项目添加CI badge

上一节讲到了 PHP 单元测试,数据库测试,那么测试报告结果怎么添加到自己的 github 项目中去呢?也或者说,怎么让程序自动帮我们完成这些工作呢?

我就简单带大家入门一下吧。估计很多朋友们对着方面其实没啥要求的,不过了解一下,搞不好以后用得着。

相关网站:

  • TravisCI

  • StyleCI

  • ScrutinizerCI

TravisCI

进去 TravisCi ,授权登录,Sign in for github,选择账号

图片描述

开发需要做集成的项目。

图片描述

添加 .travis.yml

language: php
php:
- '5.6'
- '7'

script: vendor/bin/phpunit

图片描述

根据具体测试反馈,对代码进行修正,更新,重复以上步骤,以保证代码的健壮性。

每次当我们推送代码,就会触发 travis ci,由程序自动帮我们执行如配置文件中的流程,其中除了 script 选项外,还有其他,例如: before_script, after_script,等选项,更多选项和配置请参考: TravisCI文档。

如果需要用到其他测试套件,例如 redis,mysql 等,则需要配置 services 配置项,mysql 默认账号:

username: root
password:

具体可以参考: Setting up Services and Database

StyleCI

为了保持与 StyleCI 的编码风格一致,我们需要设置 PHPStorm IDE 的编码规范。

图片描述

设置完编码规范后,通过快捷键: option + command + l 一键格式化(针对 Mac 操作)。

进入 styleci.io, 使用 github 账号登录,进入账号,选择 Repos, 选择需要进行测试的项目。

图片描述

测试完成后,系统会产生测试报告,并且可以自动发送 PR 请求到 github,帮助你一键修复代码。

可以添加如下配置信息到配置文件: .styleci.yml

preset: symfony

linting: true

enabled:
  - strict
  - strict_param
  - ordered_use

在代码提交的时候,自动执行以上规范检查。然后找到 badge 添加到 reamde.md 文件中即可显示项目构建状态。更多配置项请参考文档: StyleCi文档

StyleCI 是这么多个系统中,相对操作简单的一个质量检测系统。

Scrutinizer CI

顾名思义,他是一个执行质量检查的工具,用于规范代码和提前暴露一些代码问题。

同样的,需要授权登录在平台当中,也是使用 github 进行登录。

图片描述

添加对应需要执行的 Repository,添加完成后,可以对项目进行第一次质量检查,得出初步的信息。

图片描述

执行完成,生成报告后,可以添加测试结果图标到项目中。但如果项目上没有具体配置信息,可以在此处

图片描述

获取配置信息,添加到 .scrutinizer.yml 文件中,那么在下次执行检查的时候,就会按照指定的工作流去指定代码检查。

如果在质量检查的时候用到 dbunit 测试套件的,scrutinizer 提供相当多的套件,可以对应配置具体测试数据。

数据库默认账号:

username: root
password: 

如果想要执行创建库,创建表,可以在配置项 build 中,添加配置信息

build:
    project_setup:
            before:
                - mysql -uroot -e "CREATE DATABASE IF NOT EXISTS demo;"

更多配置请参考: Build Configuration

如果不清楚配置文件如何配置,可以参考 github 上的开源项目,找到 .travis.yml, 等隐藏文件即可,又或者可以看我的项目: fastD

暂且说这么多先把。还有很多很多的功能和测试就靠大家去发掘了。

临走前,给大家安利一个 badge 生成神器: shieldsIO

相关文章:

  • 物联网操作系统已现中国时机
  • selenium+Python之select定位
  • 一个简单的Golang实现的HTTP Proxy
  • springMVC
  • 将Python程序打包为exe方法
  • Impdp导入时报错:ORA-39006,ORA-39213
  • 专访朱诗雄:Apache Spark中的全新流式引擎Structured Streaming
  • nagios
  • 开发App没有数据源?不存在的!国内值得关注的API集合
  • 2015携程JAVA工程师笔试题(基础却又没多少人做对的面向对象面试题)
  • JavaScript服务器推送技术之 WebSocket
  • 在 Windows 上安装Rabbit MQ 指南
  • 20165318 预备作业二 学习基础和C语言基础调查
  • 终极简洁设置tabbar在push到新界面的时候隐藏,返回时显示
  • 06.系统规划
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • ESLint简单操作
  • js操作时间(持续更新)
  • MD5加密原理解析及OC版原理实现
  • Objective-C 中关联引用的概念
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • spring + angular 实现导出excel
  • vue学习系列(二)vue-cli
  • yii2中session跨域名的问题
  • 阿里云Kubernetes容器服务上体验Knative
  • 测试如何在敏捷团队中工作?
  • 精彩代码 vue.js
  • 理解在java “”i=i++;”所发生的事情
  • 微信小程序:实现悬浮返回和分享按钮
  • 小而合理的前端理论:rscss和rsjs
  • 自动记录MySQL慢查询快照脚本
  • Nginx实现动静分离
  • PostgreSQL之连接数修改
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #Z2294. 打印树的直径
  • (2)MFC+openGL单文档框架glFrame
  • (27)4.8 习题课
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (js)循环条件满足时终止循环
  • (二刷)代码随想录第16天|104.二叉树的最大深度 559.n叉树的最大深度● 111.二叉树的最小深度● 222.完全二叉树的节点个数
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (新)网络工程师考点串讲与真题详解
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • . NET自动找可写目录
  • .net core 依赖注入的基本用发
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .w文件怎么转成html文件,使用pandoc进行Word与Markdown文件转化
  • @private @protected @public
  • @RequestParam @RequestBody @PathVariable 等参数绑定注解详解