问题标签 [nyc]

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 投票
0 回答
1062 浏览

node.js - ES6 代码覆盖 nyc/mocha 为什么这条线被标记为未覆盖?即使乐趣运行

我想知道为什么这条 ES6 行被标记为未覆盖:

包.json

结果报告:

嗯.js | 100 | 40 | 100 | 100 | 113 |

user.model.js (um.js)

运行此方法,因为 console.log 显示消息:

感谢您的反馈

0 投票
2 回答
1113 浏览

reactjs - 当 NODE_ENV 设置为测试时,nyc (istanbul) 不起作用

我正在对使用 ES6 语法编写的 React 组件执行 mocha 测试。我正在使用伊斯坦布尔进行代码覆盖率测试。当我将我的设置NODE_ENV为“测试”时,我得到以下输出:

可以看出,它表示一切都是未知的。当我删除NODE_ENV变量时,它工作正常。我该怎么做才能在上述环境中运行此测试?

0 投票
1 回答
1069 浏览

node.js - ES6 伊斯坦布尔代码覆盖率:如何正确测试分支

我不明白测试覆盖率如何处理这个 .catch() 分支:

我正在正确测试第一个块:

if (e.name === 'ValidationError' && e.errors.username.kind === 'unique') {...)

而且我没有测试第二个 else 块,所以我添加了一个忽略下一条语句:

else { /* 伊斯坦布尔忽略下一个 */ next(e); }

代码代码覆盖率报告第 58 行。(如果..)未覆盖..

但是以下测试正在正确执行,涵盖了这一行......

0 投票
0 回答
2454 浏览

javascript - `nyc mocha` 没有覆盖数据

虽然我的测试运行得很好

在此处输入图像描述

一切都为零,在./coverage目录内部也没有覆盖信息:(

我的项目非常基础(ES2015):

这是我的.babelrc

.nycrc文件

我还使用 ES5 进行了相同的设置,但结果相同。有什么建议为什么我没有报道?

更新:解决方案可以在这里找到

0 投票
1 回答
2241 浏览

javascript - 按文件夹分组伊斯坦布尔代码覆盖率报告

我正在使用 istanbul 和 nyc 命令运行 NodeJs 的代码覆盖率报告。

我正在使用 mocha 进行单元测试

正如预期的那样,我得到了每个文件的报告,但我希望看到的是具有单个目录摘要的报告。让我更详细地解释一下我得到了什么以及我想看到什么

我所有的源文件都在一个文件夹中,我想查看该文件夹的摘要,而不是该文件夹中每个文件的完整列表

这是我的文件夹结构的样子

我的.babelrc文件看起来像这样

我正在使用以下命令运行覆盖率测试

src/coverage/NodeJs/index.html我所有的测试都运行良好,它们通过了,并且报告按预期输出到文件中。在浏览器中,该报告如下所示:

所有文件的覆盖率报告

我想看到的是这样的,我可以看到整个文件夹的单个完整摘要,然后在必要时单击文件夹以深入其中,如下所示:

单个文件夹的覆盖率报告

现在,如果我有超过 1 个被覆盖的文件夹,我可以得到那种效果。例如......如果我摆脱了exclude我的文件.babelrc中的srcsrc/tests

包含两个文件夹的覆盖率报告

但问题是我不希望我的测试被覆盖......正如你所看到的,它弄乱了数字。我只想覆盖一个文件夹,并希望在 HTML 输出文件中看到一个文件夹摘要。

关于如何实现这一目标的任何建议?(如果我没有提供足够的信息,请告诉我)

0 投票
1 回答
1325 浏览

mocha.js - IstanbulJS 代码覆盖率显示 100% 行覆盖率但 <100% 语句覆盖率

我使用 Mocha 作为我的测试运行程序,使用 nyc 作为测试报告员。我没有看到任何未覆盖的行,并且想知道是否有人知道如何在覆盖每一行的同时发现函数和语句。想法?

0 投票
0 回答
372 浏览

node.js - 伊斯坦布尔/纽约代码覆盖率问题

我正在使用 ExpressJS,并使用 mocha 创建了单元测试以及使用 istanbul nyc 的覆盖率。我已经实现了一条路线(参见下面的代码)并正在验证我的测试的代码覆盖率。

以下寄存器 100% 覆盖,

但以下寄存器的覆盖率为 0%:

两者都工作并且都通过了单元测试。第二个,IMO,“应该”也以 100% 的覆盖率注册。

任何想法如何使第二个版本注册?为什么它不能按原样工作?

注意:我正在使用 mocha 进行测试。上面的逻辑不是测试逻辑,而是我的测试最终调用的逻辑

0 投票
1 回答
745 浏览

babeljs - 测试通过,覆盖率未显示

我正在努力让所有人都相处nyc ava融洽。babel我遇到了一个问题,其中 async / await 分支显示为未涵盖,所以这是有效的,我在集成babel-plugin-istanbul插件以进行测试时遇到了麻烦。

我在项目中有两个文件,src/index.js并且src/test.js.

这是正在运行的:

为什么没有src/index.js出现在报道中?

0 投票
1 回答
602 浏览

javascript - 如何使用 npm 脚本运行客户端 javascript 的代码覆盖率

我有一个用基本 javascript 编写的客户端 Web 应用程序,它应该在另一个应用程序内的修改后的 chromium 浏览器中运行。代码被广泛重构以在当前设置中工作并更新以使用 ES6 功能。旧版本使用 Grunt 进行了一些基于浏览器的 mocha 测试。

我现在想在新设置中添加测试(并在必要时重写它们)并添加代码覆盖率并用 npm 脚本替换 Grunt。

到目前为止,我设法重写了一些测试并使用以下方法运行它们:

./node_modules/babel-cli/bin/babel.js js --out-dir tmp/js --source-maps ./node_modules/babel-cli/bin/babel.js test --out-dir tmp/test --source-maps ./node_modules/mocha-phantomjs-core/mocha-phantomjs-core.js test/test-spec.html spec <some options>

这给出了测试的输出。他们都通过了。

现在我想使用 nyc 添加覆盖范围,但我不知道如何让它工作。我找到了mocha-phantomjs-istanbul但这似乎使用了 mocha-phantomjs(已弃用)和 istanbul 1.x(已弃用)。

我需要做什么才能向此配置添加代码覆盖率?

0 投票
1 回答
419 浏览

node.js - 从 npm 运行时将选项传递给 mocha

我正在为我的项目设置 nyc/mocha。我想在--exit带/不带 nyc 运行 mocha 时将选项传递给 mocha。

这是我的packages.json:

但是当我运行 npm test 或 npm run test-with-coverage 时,这会引发无效选项错误。

你如何将任何选项从 npm 传递给 mocha?