QueryPHP V1-beta.6 新增 400 单元测试全量覆盖

字节映星师
• 阅读 1682

QueryPHP v1.0.0-beta.6,这个版本主要进行单元测试收尾工作,新编写 400 例单元测试用例,除了我们选择主动忽略的、无法测试的代码和一部分 Swoole 的代码,整个产品实现百分之百覆盖。核心库 framework 单元测试用例 3410, 断言 13556,10659 行源代码被覆盖。

QueryPHP 坚持自己的路线,less is more, 不追求炫酷庞大的功能,产品的稳定性、可持续维护性是我们整个项目最为看重的,这也是我们进行大量地编写单元测试进行自动化测试最为直接的动力。

travis-ci

coveralls

关于 QueryPHP

QueryPHP 是一款现代化的高性能 PHP 渐进式协程框架, 我们还是主要面向传统 PHP-FPM 场景,以工程师用户体验为历史使命,让每一个 PHP 应用都有一个好框架。

百分之百单元测试覆盖直面 Bug,基于 Zephir 实现框架核心常驻,依托 Swoole 协程提升业务性能,此刻未来逐步渐进。 我们的愿景是 USE LEEVEL WITH SWOOLE DO BETTER, 让您的业务撑起更多的用户服务。

更新日志

  • 【framework】新增 400 单元测试全量覆盖,进一步缩减了 BUG 生存空间。
  • 【framework】由于不完整,删除 Swoole RPC 实现,保留了 Http,Websocket,未来 1.0 正式版本重新设计
  • 【framework】通过测试 修复 HTTP 组件,请求,响应等 BUG
  • 【framework】修复数据库重连错误极端异常情况兼容
  • 【framework】数据库查询和执行去掉了重复代码,抽象了一些公共代码,精简了代码
  • 【framework】修复了 ORM 关联查询源数据为空的判断,重构了关联模型作用域实现,并精简了代码
  • 【framework】修复数据库工作单元 UnitOfWork的 bug 和精简代码
  • 【framework】关联模型,改进 ORM 关联查询源值为空的特殊处理 ,不再执行后续查询,减少数据库查询,修复嵌套关联预载入查询未执行到的 BUG。
  • 【framework】ORM 实体 Entity 的 toArray() 支持关联属性读取,并支持 SHOW_PROP_NULL 返回自定义默认返回数据
  • 【framework】修复更新实体一些错误,抽离公共代码。
  • 【framework】其它若干修复项目,主要写测试用例时发现的问题。
  • 【application】修复 debugbar 错误,兼容 Swoole HttpServer 和 PHP 内置 WebServer

RoadMap

  • 【framework】Beta 6 是 QueryPHP 的最后一个 beta 版本,整个框架功能冻结。
  • 【framework】RC 版本只修复 BUG、单元测试 和文档完善,不排除可能有一些必要的功能微调。
  • 【framework】v1.0.0 正式版本将随 PHP 7.4 版本后发布 php74,计划是在 2019.12 发布。

联系方式

www.queryphp.com

QQ 群 288751294

Email: 635750557@qq.com

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
Jacoco在eclipse上的集成使用
随着敏捷开发的流行,编写单元测试已经成为业界共识。但如何来衡量单元测试的质量呢?有些管理者片面追求单元测试的数量,导致底下的开发人员投机取巧,编写出大量的重复测试,数量上去了,质量却依然原地踏步。相比单纯追求单元测试的数量,分析单元测试的代码覆盖率是一种更为可行的方式。JaCoCo(JavaCodeCoverage)就是一种分析单元测试覆盖率的工具,使
Stella981 Stella981
3年前
SpringBoot(20)
  我们在写单元测试的时候,除了接口直接抛异常而导致该单元测试失败外,还有种是业务上的错误也代表着该单元测试失败。好比我们在测试接口的时候,  该接口返回是1代表成功,如果是0那就代表是失败的,这个时候可以考虑使用断言。  一、原理我们知道,我们可以通过断言来校验测试用例的返回值和实际期望值进行比较,以此来判断测试是否通过。那我们先来看下如果失败的情
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Java单元测试及常用语句 | 京东物流技术团队
编写Java单元测试用例,即把一段复杂的代码拆解成一系列简单的单元测试用例,并且无需启动服务,在短时间内测试代码中的处理逻辑。写好Java单元测试用例,其实就是把“复杂问题简单化,建单问题深入化“。在编写的过程中,我们也可以对自己的代码进行一个二次检查。
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
京东云开发者 京东云开发者
9个月前
在Bamboo上怎么使用iOS的单元测试
本教程将使用北汽登录模块为例,一步一步和大家一起搭建单元测试用例,并在Bamboo上跑起来,最终测试结果和代码覆盖率会Bamboo上汇总。模块名称:BQLoginModule,是通过iBiu创建的一个模块工程一建立单元测试BundleProductName
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(