使用frisby.js生成Rest API测试的测试覆盖率

时间:2018-07-04 15:20:51

标签: node.js rest mocha swagger frisby.js

我正在使用frisby.jsMocha一起实施自动化的Rest API测试。所有测试均在单独的testautomation项目中实施。 REST API实现在其他项目中实现。 Rest API基于Swagger。因此,我可以获取/获取swagger.json作为API定义。

这是一个简单的实现示例:

const frisby = require('frisby');
const chai = require('chai');
const assert = chai.assert;
const config = require('config');
const { adminUser1 } = config.get('users');
const { adminUser2 } = config.get('users');
const restHelper = require('../restHelper');

describe('REST API endpoint \'/auth\' on environment: ' + process.env.BASE_URL + '/api/auth', () => {
  // POST /auth
  describe('POST /auth', () => {

    // POST /auth - Status Code 200
    describe('Status Code 200', () => {

      it('create a new session for user ' + adminUser1.username, () => {
        return frisby
          .post(process.env.BASE_URL + '/api/auth', {
            'username': adminUser1.username,
            'password': adminUser1.password,
          })
          .expect('status', 200)
          .then(function (result) {
            assert.isNotNull(result.json.token);
          });
      });
    });
  });
});

现在,我想获得有关此Rest API的测试范围的信息。因此,我想概述一下已经测试过的内容以及当前未涵盖哪些API端点。

是否有任何工具,软件包等来生成和实施这样的测试覆盖率报告?

1 个答案:

答案 0 :(得分:0)

您可以使用NYC的新版本的伊斯坦布尔。 NYC(https://github.com/istanbuljs/nyc),它可能是nodejs最著名和最常用的覆盖率报告。并且与摩卡咖啡集成。让我知道您是否需要帮助!

您只需要在coverage.json中添加coverage脚本:

scripts: { "test": "mocha --exit --recursive test", //your test command "coverage": "nyc --exclude dist/test --reporter=html npm run test", }

编辑:

检查此库:https://github.com/mobilcom-debitel/got-swag