当前位置: 首页 > 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.系统规划
  • JavaScript 如何正确处理 Unicode 编码问题!
  • [译]如何构建服务器端web组件,为何要构建?
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • Android框架之Volley
  • Apache Zeppelin在Apache Trafodion上的可视化
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • mysql 数据库四种事务隔离级别
  • Node项目之评分系统(二)- 数据库设计
  • React+TypeScript入门
  • springboot_database项目介绍
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 计算机常识 - 收藏集 - 掘金
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 如何解决微信端直接跳WAP端
  • 如何优雅地使用 Sublime Text
  • 深度学习在携程攻略社区的应用
  • 一道闭包题引发的思考
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • 第二十章:异步和文件I/O.(二十三)
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • ​如何防止网络攻击?
  • # C++之functional库用法整理
  • #define
  • #include<初见C语言之指针(5)>
  • (2)MFC+openGL单文档框架glFrame
  • (27)4.8 习题课
  • (42)STM32——LCD显示屏实验笔记
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (初研) Sentence-embedding fine-tune notebook
  • (待修改)PyG安装步骤
  • (过滤器)Filter和(监听器)listener
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (译)计算距离、方位和更多经纬度之间的点
  • (转)大型网站的系统架构
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...