Nodejs mocha coverage report生成
Nodejs mocha coverage report生成
依赖工具
- istanbul
- mocha
测试命令
node ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- -u exports -R spec
注意事项
- window不兼容,目前会报错
- 最好不要使用全局安装mocha, istanbul的方式进行测试
- 如果需要与 (https://coveralls.io/)结合使用,可以参考 (https://github.com/bornkiller/through-gulp)的
.travis.yml
配置文件。
6 回复
windows给跪了,执行 istanbul cover _mocha 直接报错了。
有哪位朋友windows上跑起来了?还烦请告知解决办法
linux系统里,正常的指令是istanbul cover _mocha,但在Windows系统执行该指令会报错SyntaxError: Unexpected token ILLEGAL,在查看了stackoverflow的相关解答后才发现是istanbul找不到_mocha这个指令,所以命令应该这样:istanbul cover {your_npm_path}\npm\node_modules\mocha\bin\_mocha。
为了生成 Node.js 应用程序的覆盖率报告,你需要使用 mocha
作为测试框架,istanbul
作为覆盖率工具。下面是详细的步骤和示例代码。
依赖工具
- Istanbul: 用于生成覆盖率报告。
- Mocha: 用于执行测试。
测试命令
在你的项目根目录下运行以下命令来生成覆盖率报告:
npx istanbul cover node_modules/.bin/_mocha -- -u exports -R spec
这个命令做了以下几件事:
- 使用
npx istanbul cover
来启动覆盖率工具。 - 指定
node_modules/.bin/_mocha
作为 Mocha 的可执行文件路径。 - 使用
-u exports -R spec
参数来指定 Mocha 的运行方式(exports
表示 CommonJS 导出,spec
是报告格式)。
注意事项
- Window 不兼容:如果你在 Windows 系统上运行,可能会遇到一些问题。建议在 Linux 或 macOS 上进行测试。
- 不要全局安装:最好使用本地安装的
mocha
和istanbul
,以避免版本冲突。 - Coveralls 结合使用:如果你希望将覆盖率报告发送到 Coveralls,可以参考相关文档配置
.travis.yml
文件。一个示例配置文件可以在 这里 找到。
通过上述步骤,你应该能够成功生成并查看覆盖率报告。覆盖率报告会自动生成在一个名为 coverage/lcov-report/index.html
的文件中,你可以用浏览器打开该文件来查看覆盖率结果。