[ Laravel从入门到精通 ] 测试系列 —— 基于 Github + CircleCI 实现 Laravel 项目的持续集成

上篇教程学院君给大家介绍了持续集成的概念和意义,并就三个常见的持续集成系统进行了对比,以及在项目中如何选用,今天,我们就从最简单的 CircleCI 入手,结合 Github 代码仓库演示如何对前面开发的待办任务项目进行持续集成。 创建 Github 代码仓库 首先在 Github 中新建一个仓库用于保存待办任务项目代码,我们将其命名为 todoapp: 创建完成后,将本地项目关联到该...

[ Laravel从入门到精通 ] 测试系列 —— 持续集成的定义和常用 CI 系统对比

持续集成的定义 持续集成(Continuous Integration,简称CI)是一种软件开发实践,指的是将代码频繁地集成到主干分支,并且在提交、合并代码时对项目进行构建、编译和测试,如果测试不过,则不能集成,整个流程如下图所示: 与持续集成相似的还有两个概念,那就是持续交付和持续部署。 持续交付(Continuous Delivery)指的是频繁地将集成到主干后的软件新版本,手动部...

[ Laravel从入门到精通 ] 测试系列 —— 通过测试驱动开发构建待办任务项目(二):前端功能和浏览器测试篇

在上篇教程中,学院君已经完成了待办任务项目后端 API 接口的编写和功能测试,现在,我们开始编写 Vue 组件来实现前端的交互界面。 编写前端 Vue 组件 首先在 resources/js/components 目录新增一个 Vue 组件 TasksComponent.vue,并编写模板代码和脚本代码如下:...

[ Laravel从入门到精通 ] 测试系列 —— 通过测试驱动开发构建待办任务项目(一):后端接口和功能测试篇

本来打算写一篇通过 Laravel Dusk 测试前端 Vue 组件的教程,转念一想不如玩把大的,直接基于 Laravel + Vue 构建一个前后端分离的待办任务列表项目,然后在开发过程中通过功能测试用例测试后端 API 接口,通过浏览器测试用例测试前端 Vue 组件与后端的交互,同时引入数据库测试对增删改查进行测试,从而完成一个简单的、相对完整的测试驱动开发项目。 构建应用 创建新项...

[ Laravel从入门到精通 ] 测试系列 —— 在 Laravel 中基于 Dusk 实现浏览器自动化测试快速入门

简介 我们前面介绍的单元测试和功能测试都是基于 PHPUnit 的,PHPUnit 作为一个 PHP 测试框架功能很强大,但是只能用于测试后端接口和功能,无法模拟浏览器端行为测试基于 JavaScript 的前端应用。 为此,Laravel 为浏览器测试提供了一个官方扩展包 —— Laravel Dusk,该特性是在 Laravel 5.4 引入的,之前版本使用的是 Symfony Br...

[ Laravel从入门到精通 ] 测试系列 —— 在 Laravel 中基于 PHPUnit 进行代码测试:HTTP 测试篇(下)

我们继续在上一篇教程的基础上演示如何编写 HTTP 功能测试用例。 测试用户认证 Session 除了用于存储一次性验证错误信息和用户会话状态外,最主要的用途就是维护用户认证的状态,在 Laravel 中,可以通过框架提供的一系列断言方法对用户认证状态进行测试。 我们基于 Laravel 框架提供的认证脚手架中的路由进行测试,如果你还没有在测试项目中生成认证脚手架代码,运行如下 Arti...

[ Laravel从入门到精通 ] 测试系列 —— 在 Laravel 中基于 PHPUnit 进行代码测试:HTTP 测试篇(上)

底层实现 上一篇教程我们介绍了在 Laravel 框架中如何基于 PHPUnit 编写单元测试,其实单元测试基本上使用的都是 PHPUnit 框架提供的原生方法,今天我们来看下 Laravel 如何基于 PHPUnit 实现 HTTP 功能测试。 Laravel 框架开箱为我们提供了一个功能测试用例示例 tests/Feature/ExampleTest.php: <?php n...

[ Laravel从入门到精通 ] 测试系列 —— 在 Laravel 中基于 PHPUnit 进行代码测试:单元测试篇

简介 介绍完 PHPUnit 的基本使用和 Laravel 框架自带的编排文件 phpunit.xml 文件,今天开始我们正式准备在 Laravel 项目中基于 PHPUnit 编写单元测试和功能测试,通过上篇教程介绍的编排文件我们知道,Laravel 的单元测试用例位于 tests/Unit 目录下,框架本身也为我们提供了一个示例测试文件 ExampleTest.php: ...

[ Laravel从入门到精通 ] 测试系列 —— 在 Laravel 中基于 PHPUnit 进行代码测试:目录结构及测试编排文件 phpunit.xml 详解

目录结构 Laravel 框架基于 PHPUnit 提供了开箱即用的测试功能,对代码测试的支持非常有好: 以 Laravel 5.8 为例,在框架初始化过程中通过 Composer 安装了 PHPUnit 7(也可以手动升级到 PHPUnit 8),并且在项目根目下创建了 tests 目录用于存放测试文件: 在该目录中包含的 Unit 和 Feature 子目录下存放的测试用例分别用...

[ Laravel从入门到精通 ] 测试系列 —— 从基于 PHPUnit 编写单元测试开始

为什么要测试 我们知道,Laravel 框架开箱提供的测试功能是基于 PHPUnit 实现的,PHPUnit 是 PHP 语言中最负盛名的单元测试框架。在介绍 Laravel 框架提供的测试功能之前,我们先从源头 PHPUnit 开始,聊聊如何在 PHP 框架中实现单元测试。 即使是很小规模的项目开发也需要数小时的辛苦编码。在开发过程中,应用代码中或多或少都会存在一些大大小小的问题,开发...