问题标签 [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.
node.js - 在使用 mocha chai 工作服运行单元测试时,我将如何忽略包含在(工作服)中的文件夹
嗨,我试图在我的测试命令之后排除给定的被添加到我的测试的整体中
我唯一能做的就是避免 mocha 从 runnign 模块构建测试
typescript - 如何使用 nyc 从函数覆盖范围中排除用 TypeScript 编写的私有构造函数?
我想private constructor
从功能覆盖中排除。
其实我更喜欢用private constructor
in Factory Pattern
。
示例代码
nyc
选项
正如我在 中提到的comment
,我想排除private constructor
.
这使我的覆盖率降低。
我怎样才能排除这个?
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 found
npm 失败:
然后我尝试了所有可能的命令和 && 组合,但没有成功。我不确定还能尝试什么。文件夹结构为 root/test 和 root/src。我有一个也使用 Windows 的同事,他能够让单元测试工作而无需更改 package.json ......而且他不知道他做了什么让它工作。
我还应该提到,我不认为这是我的测试本身的问题。该应用程序通过 docker 运行,我可以通过 docker 运行我的单元测试和代码覆盖率。但是,通过 docker 运行不会生成 /coverage 文件夹供我查看覆盖率报告。
另请注意:package.json 中的启动脚本确实有一个“节点”选项。
Windows 10 节点版本:v10.17.0 摩卡:^5.2.0 纽约:^13.1.0
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 的路径。也许这是真正的解决方案?
javascript - 纽约报告未上传到 TravisCI 构建中的 Codecov
我已经为我的 NodeJS 应用程序配置了 codecov。
当我运行npm run codecov --disable=gcov
它时,它会生成报告,我可以看到结果。但是在我的 TravisCI 构建中,我在日志中收到一条消息
X 读取文件失败
这是我的package.json的样子。
这是TravisCI 构建日志的链接。
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
mocha.js - 使用 Typescript 编写的使用 NYC/Istanbul 的 Fastify 集成测试没有代码覆盖
我目前正在尝试使用 Mocha 和 NYC 在我的 fastify 路线上获得代码覆盖率。
我已经尝试预先检测代码,然后对检测代码运行测试,以及尝试以各种方式设置 NYC 以使其正常工作。
这是我目前的配置。所有以前的都产生相同的代码覆盖率输出):
纽约配置
路线文件:
集成测试:
我的单元测试调用如下所示:
我真的得到了 5% 的代码覆盖率const routes =
。我真的很想弄清楚这一点。任何帮助将不胜感激!我在这里调查过的其他解决方案都不起作用。
node.js - Instanbul/Nyc 只接收一些文件
我尝试为我的项目设置 Istanbul/Nyc/Mocha 以进行测试覆盖,虽然我能够成功运行 Nyc,但我只能看到一些文件被拾取以进行测试覆盖,而不是我拥有的所有 .ts 文件。
所以当我跑步时
我明白了
这仅涵盖了我大约 50% 的代码库。例如,我有一个 develop-potta/DBConnection/OracleConnection.ts,它也是一个 ts 文件,我的脚本没有提取该文件。我无法弄清楚为什么?会不会是某种命名约定?难道是我没有导出那些模块?
makefile - 如何从 Makefile 运行 nyc merge?
我继承了带有 Jasmine 单元测试的 JS 代码库。测试框架使用karma
和instanbul-combine
来获取代码覆盖率。它似乎istanbul-combine
不适用于当前的节点模块,并且不再维护:推荐的替换是nyc
. 我在istanbul-combine
替换nyc
为Makefile
.
这是我合并数据的尝试(甚至还没有尝试获取报告):
#1
#2
#3
覆盖数据在coverage/*/coverage-final.json
其中,但这些尝试都没有成功地将其合并到结果文件coverage-final.json
中。
对于#1,我很确定它实际上只是将一组结果合并到结果文件中。使用#2,有一个错误;但是如果我将该命令放在 shell CLI 中,则不会将任何内容放入结果文件中。
使用#3,至少没有错误,但只有一个覆盖文件被合并。
这是我要替换的原始 Makefile 行: