问题标签 [istanbul]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4724 浏览

node.js - 如何使用 Node、Mocha 获取代码覆盖率信息

我最近开始在 Mocha 的帮助下对我的 Node 项目进行单元测试。到目前为止一切都很顺利,我发现我的代码已经有了很大的改进,因为我正在考虑在我的测试中涵盖的所有角度。

现在,我想与团队的其他成员分享我的经验,并让他们进行自己的测试。我想分享的部分信息是我的代码实际上被覆盖了多少。

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

目前我的package.json样子是这样的。我在玩弄伊斯坦布尔,但我与它无关。我也尝试过使用具有相似成功水平的毯子。

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

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


TL;博士

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


编辑

需要明确的是,Mocha 在当前状态下正在正确运行测试。获取代码覆盖率报告是我开始工作时遇到的困难。

编辑 2

我收到通知说另一个问题可能已经回答了我的问题。它只建议安装伊斯坦布尔并运行cover我已经完成的命令。另一个建议建议使用 运行测试命令_mocha,根据我所做的一些研究,这是为了防止伊斯坦布尔吞下 Mocha 的标志,并且在较新版本的 Mocha 中没有必要。

0 投票
2 回答
4482 浏览

node.js - 使用 Istanbul 和 Mocha 覆盖 ES6 代码

我有用 ES6 编写的 Node 代码,我通过发出mocha --harmony. 测试很好 - 一切正常。

现在我想将覆盖率和伊斯坦布尔添加到组合中,但在遇到的第一个箭头函数上我不断收到错误:

这是我尝试过的:

  1. 安装了 istanbul-harmony(来自 git://github.com/gotwarlost/istanbul.git#harmony)作为我的开发依赖项。
  2. 运行以下命令:"./node_modules/.bin/istanbul" cover "./node_modules/mocha/bin/_mocha" -- --harmony tests -R spec
  3. 伊斯坦布尔和 _mocha 的标志组合

如何运行 istanbul 以涵盖使用 ES6 功能编写的测试?我错过了什么?

0 投票
3 回答
4165 浏览

javascript - Mocha 测试的伊斯坦布尔代码覆盖率

我正在努力让伊斯坦布尔开始工作。

在运行伊斯坦布尔结束时,我不断收到此消息:

没有收集到覆盖信息,不写覆盖信息就退出

如您所见,我已经尝试了所有可以在网上找到的东西:

我的 .istanbul.yml 文件位于项目的根目录,看起来 istanbul 正在成功获取它。

我错过了什么?

0 投票
1 回答
2287 浏览

javascript - nightwatch.js 使用伊斯坦布尔的代码覆盖率

有没有人在伊斯坦布尔为 nightwatch.js 工作的代码覆盖率。任何有用的配置链接将不胜感激。

0 投票
2 回答
1491 浏览

javascript - 使用 Karma/Istanbul 设置目标代码覆盖率

我正在使用 Karma-Coverage(Istanbul) 运行 Karma Maven 插件以进行代码覆盖。Karma-Coverage 似乎默认为所需(建议?)代码覆盖率的 80%,但是我想在项目中强制执行 90% 的代码覆盖率。但是,我不知道在哪里设置它。

有没有办法使用 Karma/Istanbul 强制执行目标代码覆盖率?

0 投票
0 回答
196 浏览

node.js - 摩卡伊斯坦布尔不包括一个文件

我正在使用 grunt mocha istanbul 运行我的测试用例并检查代码覆盖率。当我运行命令 npm test 时,每个文件中的所有测试用例都会被执行。但是,当涉及到代码覆盖率时,不会检查其中一个文件。有趣的是,该文件夹中的所有文件都经过了代码覆盖率测试。

我也找不到任何说明问题所在的错误日志。有人可以指导我吗?

0 投票
0 回答
179 浏览

javascript - Istanbul.js 在使用 AMD 模块时失败

我使用带有 AMD 样式模块的 Backbone/Marionette 和 RequireJS 编写了一个应用程序,并尝试向它添加一个覆盖步骤,但是,在运行时istanbul cover myTestFile.js,istanbul 会抛出此错误:

__cov_EsyvGtIcLKP7TgjU5WMSQw.s['1']++;定义(函数(要求){__cov_EsyvGtIcL define is not defined

我不知道如何解决这个问题,因为我从未覆盖过浏览器端代码,这是我第一次使用 AMD 样式模块。

伊斯坦布尔还说已经写了一份覆盖报告,所以我不明白这是否意味着它实际上运行成功了。

任何指针都会有很大帮助。这是istanbul cover mytestfile.js命令的完整输出(更改了一些细节):

0 投票
2 回答
10016 浏览

angularjs - Jasmine 的代码覆盖率中未涵盖的语句

我对 Jasmine 进行了单元测试。当我运行这个单元测试时,它没有任何错误,但是当我在代码覆盖率中查看它时。它显示一些错误消息:“声明未涵盖”

错误

我想解决这个错误。我能做些什么?谢谢

0 投票
0 回答
68 浏览

javascript - 是否可以从代码中运行伊斯坦布尔?

有没有办法以编程方式运行伊斯坦布尔?我想从 MeteorJS 应用程序中触发伊斯坦布尔。伊斯坦布尔的回购似乎表明可以通过使用他们的 API 来实现,但我无法让它工作。

有人有使用伊斯坦布尔 API 以编程方式生成报告的简单示例吗?

谢谢

0 投票
1 回答
4225 浏览

javascript - ReferenceError:未定义函数。在茉莉花中团结

我有一个功能需要测试。

我为它写了unitest。

但是当我运行它时,它显示错误: ReferenceError: getPrepaidFieldInfo is not defined

如何检查我的功能并解决此错误。