如何在无需在推荐框架中编写测试用例的情况下获得 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
-----------|---------|----------|---------|---------|-------------------
建议使用 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
-----------|---------|----------|---------|---------|-------------------