问题标签 [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.
node.js - 如何使用 Node、Mocha 获取代码覆盖率信息
我最近开始在 Mocha 的帮助下对我的 Node 项目进行单元测试。到目前为止一切都很顺利,我发现我的代码已经有了很大的改进,因为我正在考虑在我的测试中涵盖的所有角度。
现在,我想与团队的其他成员分享我的经验,并让他们进行自己的测试。我想分享的部分信息是我的代码实际上被覆盖了多少。
下面是我的应用程序结构示例,我将其分成不同的组件或模块。为了促进重用,我试图将所有依赖项保持在最低限度并与组件文件夹隔离。这包括保持测试隔离,而不是test/
项目根目录中的默认文件夹。
目前我的package.json
样子是这样的。我在玩弄伊斯坦布尔,但我与它无关。我也尝试过使用具有相似成功水平的毯子。
test-cov
如果我按原样运行我的命令,我会从伊斯坦布尔收到以下错误(这没有帮助):
所以我的问题是:鉴于我当前的应用程序结构和环境,我如何使用伊斯坦布尔(或其他工具)正确报告我的代码覆盖率?
TL;博士
如何使用 Node、Mocha 和我当前的应用程序结构报告我的代码覆盖率?
编辑
需要明确的是,Mocha 在当前状态下正在正确运行测试。获取代码覆盖率报告是我开始工作时遇到的困难。
编辑 2
我收到通知说另一个问题可能已经回答了我的问题。它只建议安装伊斯坦布尔并运行cover
我已经完成的命令。另一个建议建议使用 运行测试命令_mocha
,根据我所做的一些研究,这是为了防止伊斯坦布尔吞下 Mocha 的标志,并且在较新版本的 Mocha 中没有必要。
node.js - 使用 Istanbul 和 Mocha 覆盖 ES6 代码
我有用 ES6 编写的 Node 代码,我通过发出mocha --harmony
. 测试很好 - 一切正常。
现在我想将覆盖率和伊斯坦布尔添加到组合中,但在遇到的第一个箭头函数上我不断收到错误:
这是我尝试过的:
- 安装了 istanbul-harmony(来自 git://github.com/gotwarlost/istanbul.git#harmony)作为我的开发依赖项。
- 运行以下命令:
"./node_modules/.bin/istanbul" cover "./node_modules/mocha/bin/_mocha" -- --harmony tests -R spec
- 伊斯坦布尔和 _mocha 的标志组合
如何运行 istanbul 以涵盖使用 ES6 功能编写的测试?我错过了什么?
javascript - Mocha 测试的伊斯坦布尔代码覆盖率
我正在努力让伊斯坦布尔开始工作。
在运行伊斯坦布尔结束时,我不断收到此消息:
没有收集到覆盖信息,不写覆盖信息就退出
如您所见,我已经尝试了所有可以在网上找到的东西:
我的 .istanbul.yml 文件位于项目的根目录,看起来 istanbul 正在成功获取它。
我错过了什么?
javascript - nightwatch.js 使用伊斯坦布尔的代码覆盖率
有没有人在伊斯坦布尔为 nightwatch.js 工作的代码覆盖率。任何有用的配置链接将不胜感激。
javascript - 使用 Karma/Istanbul 设置目标代码覆盖率
我正在使用 Karma-Coverage(Istanbul) 运行 Karma Maven 插件以进行代码覆盖。Karma-Coverage 似乎默认为所需(建议?)代码覆盖率的 80%,但是我想在项目中强制执行 90% 的代码覆盖率。但是,我不知道在哪里设置它。
有没有办法使用 Karma/Istanbul 强制执行目标代码覆盖率?
node.js - 摩卡伊斯坦布尔不包括一个文件
我正在使用 grunt mocha istanbul 运行我的测试用例并检查代码覆盖率。当我运行命令 npm test 时,每个文件中的所有测试用例都会被执行。但是,当涉及到代码覆盖率时,不会检查其中一个文件。有趣的是,该文件夹中的所有文件都经过了代码覆盖率测试。
我也找不到任何说明问题所在的错误日志。有人可以指导我吗?
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
命令的完整输出(更改了一些细节):
angularjs - Jasmine 的代码覆盖率中未涵盖的语句
我对 Jasmine 进行了单元测试。当我运行这个单元测试时,它没有任何错误,但是当我在代码覆盖率中查看它时。它显示一些错误消息:“声明未涵盖”
我想解决这个错误。我能做些什么?谢谢
javascript - 是否可以从代码中运行伊斯坦布尔?
有没有办法以编程方式运行伊斯坦布尔?我想从 MeteorJS 应用程序中触发伊斯坦布尔。伊斯坦布尔的回购似乎表明可以通过使用他们的 API 来实现,但我无法让它工作。
有人有使用伊斯坦布尔 API 以编程方式生成报告的简单示例吗?
谢谢
javascript - ReferenceError:未定义函数。在茉莉花中团结
我有一个功能需要测试。
我为它写了unitest。
但是当我运行它时,它显示错误: ReferenceError: getPrepaidFieldInfo is not defined
如何检查我的功能并解决此错误。