创建项目
我们要创建的包是一个叫做 thatis 的包。因为在使用 JS 写代码时,经常需要判断某一个对象是不是某一种类型的。这个包就是用来收集一些常用的判断方法的。
创建项目目录 thatis
进入项目目录,使用 npm init 初始化,一路默认即可,后面再修改。
使用 tsc --init 添加 tsconfig.json
完善项目,发布项目
代码见:
https://github.com/banxi1988/that-is/tree/v1.0.0
增加集成测试
打开 travis-ci
使用 GitHub 账号登录。
找到 that-is 项目,选择开启。
添加 .travis.yml 配置文件,commit ,push 然后即可在 travis-ci 网站上看到测试状态。
language : node_js
node_js :
- stable
- "lts/*"
install:
- npm install
script:
- npm test
使用 istanbul 进行覆盖测试
安装
在 package.json 的 "scripts" 部分 中添加执行脚本:
"cover": "istanbul cover node_modules/mocha/bin/_mocha test/*.js - - -R spec"
然后 npm run cover 执行。可以看到类似下面的输出:
=============================================================================
Writing coverage object [/Users/banxi/Workspace/that-is/coverage/coverage.json]
Writing coverage reports at [/Users/banxi/Workspace/that-is/coverage]
=============================================================================
=============================== Coverage summary ===============================
Statements : 62.5% ( 30/48 )
Branches : 16.67% ( 4/24 )
Functions : 73.33% ( 11/15 )
Lines : 62.5% ( 30/48 )
================================================================================
详细的说明在 coverage 目录中
➜ that-is (master) ✗ tree coverage
coverage
├── coverage.json
├── lcov-report
│ ├── base.css
│ ├── dist
│ │ ├── index.html
│ │ └── index.js.html
│ ├── index.html
│ ├── prettify.css
│ ├── prettify.js
│ ├── sort-arrow-sprite.png
│ └── sorter.js
└── lcov.info
2 directories, 10 files
打开其中的 index.html 即可查看详细的报告说明。
报告看起来是这样的:
1433690-c5e8b0389259f8a6.png
isNumber 测试覆盖率警告
说明 isNumber 这个方法没有测试到。
将覆盖测试数据上传到 coveralls
使用 GitHub 账号登录到 coveralls
找到 that-is 仓库将其中的开关开启。
安装 coveralls 工具 npm i coveralls -D
修改 .travis.yml 添加 上传测试覆盖率数据到 coveralls 的脚本。
language : node_js
node_js :
- stable
- "lts/*"
install:
- npm install
script:
- npm run cover
# Send coverage data to Coveralls
after_script: "cat coverage/lcov.info | node_modules/coveralls/bin/coveralls.js" |