如何在无需在推荐框架中编写测试用例的情况下获得 nodejs 应用程序的代码覆盖率?

How to get code coverage of nodejs application without having to write test cases in recommended frameworks?

建议使用 Mocha、chai 或 jest 等框架来利用 istanbul 获得代码覆盖率。

我设计了一个测试工具,它会向 api 发送请求,并根据响应判断通过或失败。

负载和预期结果出现在 excel sheet 中。对于每一行,它将发送相应列中存在的有效负载,并将响应与我们获得的实际响应进行比较。在这种环境下,我是否能够获得我的应用程序的代码覆盖率。

nyc 可以检测任何节点进程(构建环境越复杂,设置就越复杂)。

nyc node server.js

您只需要一种在测试结束时关机的方法。

可以添加有条件的最终确定路由

if (process.env.NODE_ENV === 'test' ) {
  router.post('/shutdown', ctx => {
    database.close()
    server.close()
    ctx.body = 'Shutting down'
  })
}

然后运行测试服务器通过nyc

yarn add --dev nyc
NODE_ENV=test ./node_modules/.bin/nyc node server.js

然后你得到报告和一个.nyc_output目录

-----------|---------|----------|---------|---------|-------------------
File       | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-----------|---------|----------|---------|---------|-------------------
All files  |   58.33 |      100 |      50 |   66.67 |                   
 server.js |   58.33 |      100 |      50 |   66.67 | 15-17             
-----------|---------|----------|---------|---------|-------------------