问题标签 [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 回答
379 浏览

node.js - 在使用 mocha chai 工作服运行单元测试时,我将如何忽略包含在(工作服)中的文件夹

嗨,我试图在我的测试命令之后排除给定的被添加到我的测试的整体中

我唯一能做的就是避免 mocha 从 runnign 模块构建测试

0 投票
1 回答
384 浏览

typescript - 如何使用 nyc 从函数覆盖范围中排除用 TypeScript 编写的私有构造函数?

我想private constructor功能覆盖中排除。
其实我更喜欢用private constructorin Factory Pattern

示例代码

nyc选项

正如我在 中提到的comment,我想排除private constructor.
这使我的覆盖率降低。

我怎样才能排除这个?

0 投票
0 回答
1443 浏览

node.js - 纽约市覆盖率未生成/摩卡单元测试未运行

我在设置环境以运行 nyc 覆盖时遇到了一些麻烦。这是一个带有 mocha 的反应应用程序,用于单元测试。这个本来是别人在mac上开发的,所以package.json命令都是面向mac的。

首先,我的 package.json 脚本中有:

NODE_ENV 报错,'NODE_ENV' is not recognized as an internal or external command, operable program or batch file.我发现是因为 NODE_ENV 不是windows语法,于是我试了一下:

随着 nyc 运行,但被列为 Unknown% (0/0) 并且节点给出以下错误:

然后我尝试了:

并且 nyc 仍然运行,但是说No test files foundnpm 失败:

然后我尝试了所有可能的命令和 && 组合,但没有成功。我不确定还能尝试什么。文件夹结构为 root/test 和 root/src。我有一个也使用 Windows 的同事,他能够让单元测试工作而无需更改 package.json ......而且他不知道他做了什么让它工作。

我还应该提到,我不认为这是我的测试本身的问题。该应用程序通过 docker 运行,我可以通过 docker 运行我的单元测试和代码覆盖率。但是,通过 docker 运行不会生成 /coverage 文件夹供我查看覆盖率报告。

另请注意:package.json 中的启动脚本确实有一个“节点”选项。

Windows 10 节点版本:v10.17.0 摩卡:^5.2.0 纽约:^13.1.0

0 投票
1 回答
1240 浏览

code-coverage - 通过 CircleCI 中的赛普拉斯代码覆盖插件运行时,纽约报告失败并显示 ENOENT

我正在使用赛普拉斯代码覆盖仪器 cra插件。当在我自己的机器上本地运行时,这工作得很好,但是当通过 CircleCI 运行时,我得到:

目前尚不清楚它抱怨的是哪个文件。我已经验证 /root/app/.nyc_output 存在并包含覆盖数据。

我在 Cypress 中启用了调试日志记录并得到:

完整的运行可在https://circleci.com/gh/magjac/graphviz-visual-editor/114获得

我已按照本指南进行设置。

这是我的 CircleCI config.yaml(有很多可怕的调试和解决方法):

编辑:找不到的是 nyc 命令。在 Cypress 调用之前添加 `env PATH="$PATH:./node_modules/.bin" 可以解决问题。我真的必须使用它还是有更好的方法?

编辑 2:更好的解决方法是使用npx cypress run自动设置 node_modules/.bin 的路径。也许这是真正的解决方案?

0 投票
1 回答
2855 浏览

zsh - Yarn 安装 nyc 成功,但是 zsh 说“command not found”

问题:如何使 nyc 对 zsh 可见?

重建步骤:

  1. 我试过了yarn add nyc -g(我按照使用 npm的步骤npm i进行操作,所以我只是替换为yarn add
  2. 然后跑了nyc report --reporter=html

zsh:找不到命令:nyc

  1. 但是,当我运行时npx nyc --help,我得到了 nyc 函数的完整列表!
  2. 然后我尝试yarn add -D了(来自官方纽约文档
  3. 然后跑了nyc report --reporter=text-lcov。再来一次:

zsh:找不到命令:nyc

0 投票
1 回答
189 浏览

javascript - 纽约报告未上传到 TravisCI 构建中的 Codecov

我已经为我的 NodeJS 应用程序配置了 codecov。

当我运行npm run codecov --disable=gcov它时,它会生成报告,我可以看到结果。但是在我的 TravisCI 构建中,我在日志中收到一条消息

X 读取文件失败

这是我的package.json的样子。

这是package.json

这是TravisCI 构建日志的链接。

0 投票
0 回答
362 浏览

node.js - 纽约市的代码覆盖率对行、语句和函数返回 0%

我正在使用 nodeJS 并使用 sinon、chai 以及代码覆盖率 nyc 创建了单元测试。但 nyc 对语句、行、函数返回 0% -

======================== 覆盖总结 ======================== =======

语句:0% (0/34) 分支:100% (0/0) 函数:0% (0/4) 行:0% (0/34)

app.js -

app.test.unit.js

0 投票
1 回答
374 浏览

mocha.js - 使用 Typescript 编写的使用 NYC/Istanbul 的 Fastify 集成测试没有代码覆盖

我目前正在尝试使用 Mocha 和 NYC 在我的 fastify 路线上获得代码覆盖率。

我已经尝试预先检测代码,然后对检测代码运行测试,以及尝试以各种方式设置 NYC 以使其正常工作。

这是我目前的配置。所有以前的都产生相同的代码覆盖率输出):

纽约配置

路线文件:

集成测试:

我的单元测试调用如下所示:

我真的得到了 5% 的代码覆盖率const routes =。我真的很想弄清楚这一点。任何帮助将不胜感激!我在这里调查过的其他解决方案都不起作用。

0 投票
1 回答
209 浏览

node.js - Instanbul/Nyc 只接收一些文件

我尝试为我的项目设置 Istanbul/Nyc/Mocha 以进行测试覆盖,虽然我能够成功运行 Nyc,但我只能看到一些文件被拾取以进行测试覆盖,而不是我拥有的所有 .ts 文件。

所以当我跑步时

我明白了

这仅涵盖了我大约 50% 的代码库。例如,我有一个 develop-potta/DBConnection/OracleConnection.ts,它也是一个 ts 文件,我的脚本没有提取该文件。我无法弄清楚为什么?会不会是某种命名约定?难道是我没有导出那些模块?

0 投票
1 回答
419 浏览

makefile - 如何从 Makefile 运行 nyc merge?

我继承了带有 Jasmine 单元测试的 JS 代码库。测试框架使用karmainstanbul-combine来获取代码覆盖率。它似乎istanbul-combine不适用于当前的节点模块,并且不再维护:推荐的替换是nyc. 我在istanbul-combine替换nycMakefile.

这是我合并数据的尝试(甚至还没有尝试获取报告):

#1

#2

#3

覆盖数据在coverage/*/coverage-final.json其中,但这些尝试都没有成功地将其合并到结果文件coverage-final.json中。

对于#1,我很确定它实际上只是将一组结果合并到结果文件中。使用#2,有一个错误;但是如果我将该命令放在 shell CLI 中,则不会将任何内容放入结果文件中。

使用#3,至少没有错误,但只有一个覆盖文件被合并。


这是我要替换的原始 Makefile 行: