如何在不修改源代码的情况下获得Mocha测试的代码覆盖率?

时间:2013-03-10 14:01:48

标签: node.js unit-testing code-coverage mocha

我对使用Mocha编写的Node.js应用程序进行了大量单元测试。现在我想为这些测试提供一些测试覆盖率数据。

我已经看到Mocha支持覆盖率报告,但需要使用诸如JSCoverage之类的库进行一些预处理。处理JSCoverage基本上并不难,但是为了使一切正常,这个场景要求你修改源代码,以便根据环境变量导出已检测的代码或原始代码。

这基本上是我不喜欢的步骤。

我想要的是:

  • 照常编写我的代码。
  • 使用Mocha照常编写我的测试。
  • 获取我的测试的代码覆盖率,而无需修改测试或代码。

这可能吗?如果是这样,怎么样?

任何能让我这样做的图书馆提示都很棒: - )

1 个答案:

答案 0 :(得分:3)

我遇到了同样的审美问题。虽然也有点像黑客,但我正在使用以下Makefile片段:

.PHONY: coverage

coverage:
   mv lib lib-orig
   jscoverage lib-orig lib
   mocha -R html-cov > coverage.html
   mv lib lib-cov
   mv lib-orig lib

而不是在美学上令人不愉快的代码,最终会在简单的makefile后面隐藏一个非常令人愉悦的解决方案。至少有一个可以继续使用jscoverage:)