Skip to content

matmanjs/matman-vscode-extensions

Repository files navigation

matman for web 端对端测试(E2E,End-to-End Testing)

本插件为基于 matman 做 web 端对端测试(E2E,End-to-End Testing)的辅助插件,功能包含:

  • 代码片段补齐(code snippets),支持 mochachaimatmanmockstar 等框架常见场景
  • 代码覆盖率染色查看,支持合并计算多个 lcov.info 文件的全量覆盖率和增量覆盖率
  • 支持直接执行 .js.ts 文件

matman 是一个可用于做 web 端对端测试(E2E,End-to-End Testing)的框架,十分适合 web 前端开发人员来编写端对端测试。

1. 安装插件

本插件已经发布到插件商店(地址),因此可以直接在 VSCode 的 Extensions 中搜索 matman ,点击安装(Install) 即可。

注意,安装完成之后,需要重启 VSCode,可以在 Extensions 中查看状况,如有,则说明安装成功。

2. 使用插件

2.1 代码覆盖率染色查看

command(ctrl)+shift+P 打开 VSCode 的命令面板,输入 matman,可以看到如下命令:

  • 仅支持 lcov.info 覆盖率文件
  • 不支持多个工作区
  • 代码覆盖率染色时,左侧文件树无法区别是否有覆盖,待优化

2.1.1 显示全量覆盖率

选择 matman: Show FullCoverage(显示全量覆盖率),接下来会需要选择哪些 lcov.info 文件。支持多选!支持多选!支持多选!如果选择多个 lcov.info 文件,会自动进行合并。

运行之后在 VSCode 左下角状态栏有覆盖率数值:

当你打开文件时,也可以看到代码有染色,其中绿色代表已覆盖,红色代表未覆盖:

也有可能本项目中不存在 lcov.info 文件,那么请先运行自动化测试生成该文件,此时 VSCode 右下角会进行错误提示。

2.1.2 隐藏全量覆盖率

选择 matman: Hide FullCoverage(隐藏全量覆盖率) 即可以取消全量覆盖率时的代码染色。

2.1.3 显示增量覆盖率

选择 matman: Show IncrementCoverage(显示增量覆盖率),接下来会需要选择哪些 lcov.info 文件。支持多选!支持多选!支持多选!如果选择多个 lcov.info 文件,会自动进行合并。

运行之后在 VSCode 左下角状态栏有覆盖率数值:

当你打开文件时,也可以看到代码有染色,其中绿色代表已覆盖,红色代表未覆盖。

2.1.4 隐藏增量覆盖率

选择 matman: Hide IncrementCoverage(隐藏增量覆盖率) 即可以取消增量覆盖率时的代码染色。

2.2 执行 js 或 ts 文件

在 TS 或者 JS 文件中点击右键,可以看到:

可以方便的执行当前文件。

2.3 代码片段补齐(code snippets)

支持 mochachaimatmanmockstar 等框架常见场景.

2.3.1 matman.code-snippets

指令 描述
m-matman-case-v0 matman case modules 模板 v0,单文件形式
m-matman-case-v1 matman case modules 模板 v1,使用 helpers 工厂模式创建 PageDriver
m-matman-case-v2 matman case modules 模板 v2,使用 helpers 工厂模式创建 PageDriver,使用 env 定义常量
m-matman-helper-init matman helper 模板
m-matman-case-action matman case module 增加 addAction
m-matman-case-debug matman case module 增加 debug 代码
m-matman-crawler-init matman crawler 爬虫脚本模板
m-matman-config-init matman.config.js 模板

2.3.2 mocha.code-snippets

指令 描述
m-mocha-describe mocha 新建 describe
m-mocha-it mocha 新建 it
m-mocha-e2e-tpl mocha e2e 新建测试文件
m-mocha-e2e-describe mocha e2e 新建 describe

2.3.3 chai.code-snippets

指令 描述
m-chai-s-type 是否为 string 类型
m-chai-s-equal string 是否相等
m-chai-s-not-equal string 是否不相等
m-chai-s-length string 的长度
m-chai-n-type 是否为 number 类型
m-chai-n-equal number 是否相等
m-chai-n-not-equal number 是否不相等
m-chai-n-above number 是否大于某个数
m-chai-n-at-least number 是否大于或等于某个数
m-chai-array-type 是否为 array 类型
m-chai-array-eql array 是否相等
m-chai-array-not-eql array 是否不相等
m-chai-array-include array 是否包含某个元素
m-chai-array-length array 的元素个数
m-chai-o-type 是否为 object 类型
m-chai-o-eql object 是否相等
m-chai-o-not-eql object 是否不相等
m-chai-o-have-property object 包含某个属性
m-chai-o-have-and-equal object 包含某个属性且值等于指定值
m-chai-is-undefined 是否为 undefined
m-chai-is-null 是否为 null
m-chai-is-true 是否为 true
m-chai-is-empty 是否为 empty([]、''、{}都算 empty)

2.3.4 dwt.code-snippets

指令 描述
m-dwt-testbase DWT testBase 注解

3. Known Issues

欢迎大家提交 issue

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published