当前位置: 首页 > 知识库问答 >
问题:

如何使用Node,Mocha获取代码覆盖率信息

沃盛
2023-03-14

在Mocha的帮助下,我最近开始为我的节点项目进行单元测试。到目前为止一切进展顺利,我发现我的代码有了显著的改进,因为我考虑了测试中要涉及的所有角度。

现在,我想和我团队的其他人分享我的经验,让他们开始自己的测试。我想分享的部分信息是我的代码实际上被覆盖了多少。

下面是我的应用程序结构示例,我已将其分为不同的组件或模块。为了促进重用,我试图将所有依赖项保持在最低限度,并与组件文件夹隔离。这还包括保持测试隔离,而不是项目根目录中的默认test/文件夹。

| app/
| - component/
| -- index.js
| -- test/
| ---- index.js

当前是我的包。json看起来像这样。我在玩弄伊斯坦布尔,但我和它毫无关系。我也尝试过使用毯子,取得了类似的成功。

{
  "scripts": {
    "test": "clear && mocha app/ app/**/test/*.js",
    "test-cov": "clear && istanbul cover npm test"
}

如果我按原样运行test cov命令,我会从伊斯坦布尔得到以下错误(这没有帮助):

No coverage information was collected, exit without writing coverage information

所以我的问题是:考虑到我当前的应用程序结构和环境,如何使用伊斯坦布尔(或其他工具)正确报告我的代码覆盖率?

如何使用Node、Mocha和当前应用程序结构报告代码覆盖率?

需要说明的是,Mocha在当前状态下正确运行测试。获取代码覆盖率报告是我努力工作的目标。

我收到一个通知,另一个问题可能已经回答了我的问题。它只建议安装伊斯坦布尔并运行cover命令,我已经这样做了。另一个建议建议使用_mocha运行测试命令,根据我所做的一些研究,这是为了防止伊斯坦布尔吞下摩卡的旗帜,而这在摩卡的新版本中是不必要的。


共有3个答案

赵禄
2023-03-14

这就是我如何在所有js项目上获得代码覆盖率的方法(看起来像来自Sachacr的项目):

istanbul cover _mocha -- -R spec --recursive test
何高旻
2023-03-14

您需要一个。伊斯坦布尔。yml文件。我看不到任何关于它的参考——如果不知道它的内容,很难说。我认为没有足够的信息来解决这个问题。如果你更新这个问题,我会更新这个答案,特别是在赏金到期之前,嗯?

殳越
2023-03-14

您应该尝试如下方式运行测试

istanbul cover _mocha test/**/*.js
 类似资料:
  • 我正在使用Mocha测试我的NodeJS应用程序。我不知道如何使用它的代码覆盖功能。我试着谷歌它,但没有找到任何适当的教程。请帮忙。

  • 问题内容: 我正在使用Mocha测试我的NodeJS应用程序。我无法弄清楚如何使用其代码覆盖功能。我尝试使用Google搜索,但没有找到任何合适的教程。请帮忙。 问题答案: 您需要一个额外的库来覆盖代码,而伊斯坦布尔的强大和便捷将使您震惊。通过Mocha测试后,请尝试以下操作: 现在,只需将命令nyc放在现有测试命令的前面,例如:

  • 这是一个重要的可量化指标,如果代码覆盖率很高,你就可以放心的修改代码,在发版本的时候也能睡个安稳觉。否则就是拆东墙补西墙,陷入无尽的 bug 诅咒中。 那么在 OpenResty 里面如何看到代码覆盖率呢?其实很简单,使用 LuaCov 可以很方便的实现。 我们先了解下 LuaCov,这是一个针对 Lua 脚本的代码覆盖率工具,通过 luarocks 来安装: luarocks install l

  • 我正在尝试使用JaCoCo-javaagent传递VM参数来获得代码覆盖率 -Java agent:/test/jaco co/jaco agent . jar = dest file =/test/jaco co/jaco co . exec,includes=com。*,append=true 我能在jacoco中获得一些价值。执行文件,但无法获取覆盖率报告。我怎样才能把jacoco转化成。执

  • 当我的单元测试通过Emma被“覆盖”时,我试图让Sonar IT代码覆盖为我工作。 我的情况: (1)我有大量使用JMockit的单元测试。删除JMockit不是一个选项。我想获得这些测试的单元测试覆盖报告。 (2)我进行了集成测试,简单地用不同的输入场景运行应用程序的核心服务器端部分(这是一个Spring web应用程序)。我想要它的代码覆盖报告。 对于第(1)部分,我选择使用Emma进行单元测

  • 我正在使用Jacoco插件使用jenkins获得代码覆盖率。我能够看到代码覆盖率。当我尝试使用相同的jacoco.exec文件来生成声纳代码覆盖率时,它显示:由于没有类文件,无法对项目覆盖率进行JaCoCo分析。我使用以下声纳属性: 我正在使用SonarQube 5.3