chore: 完善文档格式

This commit is contained in:
luochao 2020-11-24 11:50:44 +08:00
parent 40c2c27a42
commit bcde492287
2 changed files with 13 additions and 10 deletions

View File

@ -26,6 +26,9 @@ npm run start
参考 [开发规范](./dev.md)
## 测试
参考 [测试](./test.md)
## 合并代码
参考 [代码走查 + 合并代码](./cr.md)

View File

@ -1,9 +1,9 @@
# 测试
本文档介绍项目测试流程每次开发完新的功能或者修复bug团队成员务必养成完善测试用例的习惯并且保证在本地运行所有测试用例都能通过再去提交PR。目前项目已经集成了单元测试和 `E2E` 测试并且已经添加到CI流程里面CI流程的工作流会帮我们做最后的检查。
### 单元测试
## 单元测试
单元测试是一个项目最基础的测试,也是一个项目质量保证的第一关,所以确保一定的单元测试覆盖率还是很重要的。我们项目的单元测试使用了业界内比较受欢迎的 `jest` ,文档完善,生态发展也不错,也比较适合来写单元测试。
#### 目录介绍
### 目录介绍
目前我们的单元测试放在根目录下的 `test` 目录,下面是具体的目录介绍:
- config 主要用来存放与编辑器默认配置相关的测试文件;
- editor 主要用来存放与编辑器构造器相关的测试文件;
@ -14,34 +14,34 @@
可以看到,单元测试目录结构基本是跟项目核心代码的结构保持一致的,这样也让我可以很清晰地定位到相关功能的测试文件。
#### 编写测试
### 编写测试
可以根据你需要测试的功能选择对应的目录创建测试文件,目前的目录结构基本满足了编辑器所有功能了。如果之前没有写过或者学习过单元测试的同学,可以先去 [jest](https://jestjs.io/) 官网先进行一定的学习,再加入到单元测试中来。
#### 运行测试
### 运行测试
在我们的 `package.json` 配置了相关的单元测试运行的命令,你只要运行 `npm run test` 即可运行所有的单元测试文件。如果想查看单元测试的覆盖率,可以运行 `npm run test-c` 命令。
### E2E测试
## E2E测试
为了更好的保证项目的质量,我们添加了自动化的 `E2E` 测试流程,目前已经覆盖了几乎所有的基本菜单功能,当然一些比较复杂的交互或者功能暂时没有覆盖到,后续我们会慢慢完善,也欢迎大家来帮我们完善。
#### 技术方案
### 技术方案
综合对比了各种业界开源的 `E2E` 框架,我们选择了 `Cypress` 作为我们的 `E2E` 测试框架它开箱即用、API简单、强大的 `debug` 能力吸引了我们,直接将测试用例运行在浏览器中的架构也更加符合我们的富文本场景,比较适合我们团队。
#### 安装
### 安装
如果你的项目之前没有安装过 `Cypress` ,可以直接运行命令:
```bash
npm install cypress -g --registry=https://registry.npm.taobao.org
```
部分的系统有概率安装后,提示找不到 `Cypress` 的 app 程序,如果运行测试的时候还有报错,根据报错信息指导,使用 `npx cypress install` 再安装一次。由于 `Cypress` 依赖比较多,安装有点慢,请耐心等待安装完成。
#### E2E目录介绍
### E2E目录介绍
所有的 `E2E` 相关测试都放在根目录下的 `cypress` 中,它下面有如下目录:
- fixtures 目录,主要用来存放一些 mock 数据,我们暂时还没用到;
- integration 目录,存放所有的测试文件;
- plugins 目录,用来引入 `cypress` 插件;
- support 目录,用来引入自定义命令,或者引入一些想要在每个测试用例运行之前运行的脚本。
#### 编写测试
### 编写测试
上面介绍目录提到过,所有测试文件都放在 `cypress` 下的 `integration` 目录下,下面目前还有一个 `menus` 目录,所有菜单功能相关的测试放在此目录下,如果需要添加菜单相关的测试,可以直接在此目录下创建测试文件,其它的非菜单功能可以视情况创建新目录或者直接放在当前目录。团队新成员或者其它成员,**如果还没有阅读团队内部语雀上的 `E2E测试开发指南`,请务必先去阅读该文档,并对 `Cypress` 进行一定的学习,再加入到写测试的流程中来。**
#### 运行测试
### 运行测试
目前运行测试有两种方式,一种是通过 `npm run cyress:open`,这种方式会帮我们启动 `cypress` 的桌面工具,让我们更加方便地管理我们的测试文件和进行一些简单运行测试时的设置,在我们写测试的过程中也比较适合用这种方式,可以让我们便捷地 `debug` 一些出错的测试用例。另外一种则是 `npm run cypress:run`,更加适合用于跑在 CI 中,或者说当你不需要对测试进行修改,只是单纯地想要运行一下 `E2E` 测试,看下功能是否有问题,也可以使用这种方式。