【问题标题】:How do I get code coverage for Mocha tests without modifying the source code?如何在不修改源代码的情况下获得 Mocha 测试的代码覆盖率?
【发布时间】:2013-03-10 14:01:48
【问题描述】:

我有很多针对使用 Mocha 编写的 Node.js 应用程序的单元测试。现在我想为这些测试提供一些测试覆盖率数据。

我看到 Mocha 支持覆盖率报告,但需要使用 JSCoverage 等库进行一些预处理。处理 JSCoverage 基本上并不难,但是为了让一切正常工作,这种情况需要您修改源代码,以便根据环境变量导出检测代码或原始代码。

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

我想要的是:

  • 像往常一样写我的代码。
  • 像往常一样使用 Mocha 编写测试。
  • 无需修改测试或代码即可获得我的测试的代码覆盖率。

这可能吗?如果有,怎么做?

任何让我能够做到这一点的库的提示都会很棒:-)

【问题讨论】:

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


    【解决方案1】:

    我也遇到过同样的审美问题。虽然也有点 hack,但我使用的是以下 Makefile sn-p:

    .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 :)

    【讨论】:

    • 这实际上更像是一种 hack 而非解决方案,但我喜欢这种方法 :-)。恕我直言,唯一的缺点是如果 jscoverage 或 mocha 崩溃,那么您会留下一个丢失的 lib 文件夹,您需要手动从 lib-orig 重新创建该文件夹。当然这不是什么大不了的事,但无论如何......
    猜你喜欢
    • 2017-02-04
    • 2013-05-14
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 2019-12-29
    • 2015-09-05
    相关资源
    最近更新 更多