问题标签 [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 投票
1 回答
4340 浏览

git - 如何运行 git pre-commit 挂钩以强制暂存文件的测试覆盖率不会降低?

我在我的 ReactJS 项目中使用 jest 和 istanbul 来编写测试用例并检查测试覆盖率。

如何确保使用预提交挂钩来测试我已暂存到 git 的任何文件的覆盖率不会从提交前的当前值减少?

0 投票
1 回答
133 浏览

javascript - Nyc coverage is not working for me when using functional approach with e.g. ramda

So my code is this:

With if (isEventEmpty(event)) { coverage is 66.67% which is fine. But without that if coverage will be 0. Notice that I use R.ifElse composable from Ramda. All unit tests pass that's why I'm not showing them, but coverage report shows 0% Branches 0/1. With imperative if branch I have 2/3 in coverage report.

Does anyone have also experience NOT using if-else branching (or loops) when writing their code? Seems that nyc is only looking in if-else, for/while branches or I might be wrong.

0 投票
1 回答
103 浏览

javascript - 纽约市伊斯坦布尔,生成带有测试用例名称的报告

当我使用 nyc 生成覆盖率报告时,它总是给出文件的覆盖率结果(覆盖了多少百分比)。尽管有什么办法可以弄清楚,哪个测试用例名称有助于该文件的覆盖率?

0 投票
1 回答
1062 浏览

javascript - 如何使用 Istanbul / nyc 获取目录中所有文件的概览?

我刚开始使用 nyc 和 Istanbul 来生成代码覆盖率报告。我注意到的第一件事是覆盖率报告仅显示测试中解决的文件的覆盖率。它不显示任何未测试的文件的覆盖范围。

如果我将所有文件都放在一个名为“src”的目录中,是否可以生成包含该目录中所有文件的报告(包括到目前为止有 0 个测试的文件)?

目前我的 NPM 脚本是(我正在使用 Mocha 和 Chai)。

0 投票
0 回答
292 浏览

angular - nyc + cypress + angular 前缀为 webpack:?

如何设置 istanbuls nyc 通过 cypress 测试对 Angular 转译代码运行测试覆盖率?

我通过 编译代码ng build,它出现在build/client/目录中,我还编译了我的 cypress 测试,它们出现在build/cypress/. build/cypress/然后我通过以下命令运行 cypress 测试:

我的.nycrc.client.json文件:

控制台中的覆盖率报告:

为什么这里会涉及到 webpack?

此外,它指出从未使用过的测试文件:

在此处输入图像描述

这是来自控制台的测试报告,显示两者都被击中:

在此处输入图像描述

为覆盖范围生成的 html 也不正确:

0 投票
4 回答
7709 浏览

angular - 无法使用 Cypress + Istanbul 获得代码覆盖率

我尝试使用Cypressistanbul nyc在Angular 8项目中设置代码覆盖率。

我设法获得了代码检测(全局变量__coverage__已正确设置):

在此处输入图像描述

.nyc_output以及运行后生成的覆盖文件cypress:open

在此处输入图像描述

但是生成的覆盖率报告是空的:

执行命令时结果相同:

这是我的 package.json devDependencies:

我的.nycrc.json

0 投票
2 回答
2881 浏览

istanbul - 什么是纽约伊斯坦布尔的仪器仪表?

纽约市使用什么仪器?

nyc 的 instrument 命令可用于在单元测试上下文之外检测源文件:

我认为它将在单元测试之外进行覆盖。我试过了

然后运行应用程序并尝试访问端点

但是当我执行上述操作时,它不会生成文件,nyc_output因此无法报告任何内容。

我必须完成nyc instrument命令吗?怎么做?

0 投票
0 回答
845 浏览

jenkins - 在 jenkins 中运行时,nyc 和 mocha 代码覆盖失败

我正在尝试为我们在 Jenkins 中的构建生成代码覆盖率报告 - 当我执行命令时在本地

它将运行测试,然后给我代码覆盖率结果

在此处输入图像描述

现在,当在詹金斯中运行相同的代码时,我得到了这个错误

/var/lib/jenkins/jobs/api-ci-develop/workspace/back-end/node_modules/path-to-regexp/index.js:63 path = ('^' + path + (strict ?'' : path [path.length - 1] === '/' ? '?' : '/?')) ^

类型错误:无法读取 pathtoRegexp 处未定义的属性“长度”(/var/lib/jenkins/jobs/api-ci-develop/workspace/back-end/node_modules/path-to-regexp/index.js:63:49)在新层(/var/lib/jenkins/jobs/api-ci-develop/workspace/back-end/node_modules/express/lib/router/layer.js:45:17)

显然正在对 node_module 文件夹做一些事情,我不知道如何避免这种情况。我排除了 nyc 配置中的文件夹和文件

我应该怎么做才能避免检查 node_modules 文件夹?

0 投票
1 回答
751 浏览

node.js - 摩卡没有显示测试用例的数量

我在我的测试用例中使用 mocha、chai、supertest 和 nyc。我所有的测试用例都按预期工作。但是我最后看不到测试用例的总数。

我无法看到有多少测试用例通过(或失败)。它只是执行它们并退出该过程。

这就是我的测试用例的结构:

这就是它的运行方式:使用npm test

版本:

任何线索将不胜感激:)

0 投票
3 回答
10105 浏览

node.js - 如何在测试期间提高 puppeteer 启动性能

我在 Puppeteer 的帮助下编写了一个小型爬虫。现在我面临的挑战是我的测试相当慢(每次测试> 3 秒)。我已经能够追踪到launchPuppeteer 的功能Istanbul/nyc的使用。

  • 如果我只用 运行测试mocha,测试将在 400 毫秒内完成。
  • 但如果我另外使用nyc,测试的持续时间超过 3000 毫秒

我正在使用的只是

这是我正在使用的测试:

我已经使用此代码创建了一个存储库并在此处进行测试。 nyc _mocha ./test/*.test.js运行时间约为 3500 毫秒,mocha ./test/*.test.js仅需 130 毫秒。

到目前为止我已经尝试过:

  • 包含/排除 nyc 标志的不同组合
  • 更新到最新版本的 Puppeteer、nyc 和 mocha
  • 删除我的 Puppeteer 参数
  • 搜索 Puppeteer & Istanbul 相关问题(没有多大成功)
  • headless: true
  • 绕过所有代理,请参阅这个 puppeteer 问题

我该怎么做才能让覆盖测试与单独的测试一样快?

使用:

  • Ubuntu 19.04
  • 节点.js 10.15.3