说起js的代码覆盖率,大家肯定想到的是ScriptCover、JSCover、Istanbul。
- ScriptCover:是一款chrome的扩展插件
- JSCover: 要在浏览器中执行测试用例
- Istanbul:主要是用于node.js环境下的覆盖率采集
需求:Browser端的js覆盖率采集,获取git相关信息,数据处理上报
调研:
- istanbul-middleware 代码覆盖率全套,还做了html展示,在'/coverage'页面可以看
var istanbulMiddleware = require('istanbul-middleware'),
port = 8989;
function getCoverageData() {
//process.cwd()当前执行程序的路径
istanbulMiddleware.hookLoader(process.cwd(), {
verbose: true
});
var app = express()
app.use('/coverage', istanbulMiddleware.createHandler({
verbose: true,
resetOnGet: true
}));
//require入口处添加钩子方法,返回已插桩代码
require(process.cwd())
app.use(istanbulMiddleware.createClientHandler(process.cwd(), {
matcher: matcher