代码覆盖与摩卡

我正在使用Mocha来testing我的NodeJS应用程序。 我无法弄清楚如何使用它的代码覆盖function。 我试图用Googlesearch,但没有find任何适当的教程。 请帮忙。

3 Solutions collect form web for “代码覆盖与摩卡”

你需要一个额外的代码覆盖库,你将被伊斯坦布尔的强大和简单所迷惑 。 在你的摩卡testing通过后,尝试以下方法:

npm install nyc 

现在,只需将命令nyc放在您现有的testing命令之前,例如:

 { "scripts": { "test": "nyc mocha" } } 

Blanket.js的作品也很完美。

npm install --save-dev blanket

在你的test / tests.js前面

 require('blanket')({ pattern: function (filename) { return !/node_modules/.test(filename); } }); 

运行mocha -R html-cov > coverage.html

现在(2017年)使用istanbul的首选方式是通过其“先进的命令行界面” nyc 。

build立

首先,将其安装在您的项目中

 npm i nyc --save-dev 

然后,如果您有一个基于npm的项目,只需更改您的package.json文件的scripts对象内的testing脚本,以执行您的mochatesting的代码覆盖范围:

 { "scripts": { "test": "nyc --reporter=text mocha" } } 

现在运行你的testing

 npm test 

你会在你的控制台中看到一个如下所示的表格:

伊斯坦布尔纽约摩卡码覆盖

定制

Html报告

只是使用

 nyc --reporter=html 

而不是text 。 现在它会在./coverage/index.html里面生成一个报告。

报告格式

伊斯坦布尔支持广泛的报告格式。 只要看看它的报告库 ,find对你最有用的。 只需为每种格式添加--reporter=REPORTER_NAME选项即可。 例如,用

 nyc --reporter=html --reporter=text 

你将拥有控制台和html报告。

不要用npmtesting来运行覆盖

只需在package.json添加另一个脚本,并将test脚本仅保留在test (例如mocha)中:

 { "scripts": { "test": "mocha", "test-with-coverage": "nyc --reporter=text mocha" } } 

现在运行这个自定义脚本

 npm run test-with-coverage 

运行代码覆盖率的testing。

如果代码覆盖率低,强制testing失败

如果总代码覆盖率低于90%,则失败:

 nyc --check-coverage --lines 90 

如果至less一个文件的代码覆盖率低于90%,则失败:

 nyc --check-coverage --lines 90 --per-file 
  • `before()`和`beforeEach()`有什么区别?
  • Python从导入的模块中嘲弄一个函数
  • 对使用数据库的代码进行unit testing
  • 用Moqvalidation一个特定的参数
  • 在AngularJStesting中,_servicename_中的下划线是什么意思?
  • RSpec模拟对象示例
  • 什么是unit testing和集成testing,以及我应该了解哪些其他types的testing?
  • 如何在目录中运行所有的Pythonunit testing?
  • 如何为androidunit testing提供数据文件
  • MVC 3:如何学习如何使用NUnit,Ninject和Moq进行testing?
  • 如何在没有setup.py的项目中运行tox?