功能测试覆盖报告,包括node-jscoverage, mocha和express

Functional test coverage report with node-jscoverage , mocha and express

本文关键字:mocha express node-jscoverage 包括 测试覆盖 报告 功能      更新时间:2023-09-26

我想要获得express端点上功能测试的覆盖率。我做了这个简单的设置。

nodetest/index.js

module.exports = process.env.APP_COV
  ? require('./lib-cov')
  : require('./lib');

nodetest/lib/index.js

var express = require('express');
var app = express();
app.get('/hello.txt', function(req, res){
  res.send('Hello World');
});
var server = app.listen(3000, function() {
    console.log('Listening on port %d', server.address().port);
});

nodetest/测试/simple.js

var request = require('supertest');
describe("Node Test Service",function(){
    it('Should return 200 OK trying to login', function (done) {
        request("http://localhost:3000")
            .get('/hello.txt')
            .expect(200)
            .end(function (err, res) {
            if(err)
                throw err;
            done();
            });
    });
});

nodetest/Makefile

all: test test-cov
test:
    @./node_modules/.bin/mocha -R xunit > reporter.xml
test-cov: lib-cov
    @APP_COV=1  ./node_modules/.bin/mocha -R html-cov > coverage.html
lib-cov:
    @./node-jscoverage/jscoverage lib lib-cov
node-jscoverage:
    @git clone git://github.com/visionmedia/node-jscoverage.git
    @cd node-jscoverage/ && ./configure && make

.PHONY: test

我在打开env变量的情况下运行服务器,然后启动测试它产生一个空的cover。html。有可能得到我所要求的保险吗?

我发现为了工作,我必须从测试中立即启动express服务器。我还需要在test

上方添加一行
var lib = process.env['COV']?'../lib-cov' : '../lib';
//run express
var app = require(lib)

,这样当您运行覆盖率测试时,您就包含了被检测的文件。