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

javascript - node - 如何在 nyc 和 mocha 中使用 source-map

所以 nyc 正在修改我的文件,如下所示:

我不确定如何使用源地图来解决这个问题。文档状态:

使用源映射的准确堆栈跟踪。

当 producer-source-map 设置为 true 时,检测的源文件将包含用于检测器转换的内联源映射。当与 source-map-support 结合使用时,检测代码的堆栈跟踪将反映其原始行。

所以我尝试了以下 npm run 命令:

结合 nyc 设置:

但这条线仍然被破坏了。

0 投票
0 回答
1286 浏览

vuejs2 - Vue cli 3 - 纽约伊斯坦布尔代码报告不包括 vue 文件

我已经尝试了几个小时来为我的新 vue(基于 typescript)项目启动并运行伊斯坦布尔代码覆盖率报告,该项目是使用 vue-cli v3 生成的。

每当我运行我的测试时:(nodemon --exec nyc vue-cli-service test:unit)只包含 .ts 文件,即使我已经明确设置 nyc 应该包含这些文件:

包.json

我也尝试过设置nyc.instrument和设置nyc.sourceMap为 false,以便在 webpack 配置中允许自定义加载器,如下所示:

Vue.config.js

我也尝试过使用vue.config.js > chainWebpack钩子来执行此操作,当使用 vue 配置而不是 package.json 时,它会导致根本不包含任何文件:

Vue.config.js 使用 chainWebpack 而不是 configureWebpack

这可能是由于__dirname + [filename]我在这个配置中使用的,虽然我不知道它应该是什么。我是基于此链接执行此操作的:https ://github.com/vuejs/vue-cli/issues/1363 ,我应该在其中添加'src',尽管它导致错误指出包含的路径不是绝对的。

0 投票
1 回答
79 浏览

javascript - 尝试用 mocha + nyc 测试功能

我正在尝试使用 mocha + nyc 测试我的功能以检查覆盖率。这是要测试的功能:

获取对象数组的函数使用其他函数检查对象是否有效,并将有效对象推送到 valid_types,将无效对象推送到 invalid_types。这是我的测试功能:

我要导出这个:

测试通过了,但我没有收到任何关于摘要的信息: 没有覆盖的测试结果

如果我测试我的其他功能一切正常:测试结果其他功能

有人可以告诉我有什么问题吗?

0 投票
3 回答
15907 浏览

vue.js - 如何使用 jest 使测试覆盖率显示 Vue-cli 3 中的所有 vue 文件

我在尝试使用 Jest 设置 Vue CLI 3 以显示测试覆盖率时遇到了困难。我已尽一切可能使其工作,但它仍然没有显示:

以下是我的配置的摘录:

jest.config.js:

包.json:

如何正确配置 Vue CLI 3 和 Jest 以显示测试覆盖率?

0 投票
0 回答
740 浏览

node.js - 如何使用 Jest 收集生成的子进程的代码覆盖率?

我正在为 CLI 编写集成测试。所有单元测试都是使用开箱即用的 Jest 编写的,它无需任何配置即可生成代码覆盖率,但不幸的是,它不检测子流程,例如通过 Node 的 spawn 和 fork 命令执行。

我已尝试按照关于 GitHub 问题的评论中的建议将 nyc 引入组合中,但它对我不起作用。

我玩过各种配置(基于上述最初的建议以及来自这些问题的想法:12),但是我根本没有得到覆盖率统计数据,或者只有单元测试的覆盖率,而不是产生子测试的集成测试过程。

package.json配置 nyc 和 Jest的 my 的相关部分:

我正在使用execa运行子流程并执行以下操作:

0 投票
1 回答
1525 浏览

javascript - 为包目录之外的文件启用 nyc / istanbul 代码覆盖

我有一个节点应用程序,其中包含单独的姐妹文件夹和随附的 package.json 文件,用于应用程序代码和测试。

nyc 作为依赖项(与 mocha 一起)包含在测试文件夹中。它无法显示应用程序文件夹中文件的覆盖范围。我试图通过在 nyc 配置中包含“../Application/**/*.js”来明确包含应用程序文件,但这似乎并没有奏效。

有任何想法吗?

0 投票
1 回答
25692 浏览

node.js - TypeScript:仅在单元测试中找不到模块的声明文件

我在 Windows 10 上使用 TypeScript 和 Visual Studio Code 来开发 NPM 模块。我使用 mocha/chai 结合 nyc (istanbul) 进行单元测试和代码覆盖。

对于我的一些测试,我想使用 chai-bytes 更轻松地比较缓冲区。不幸的是,chai-bytes 模块中没有类型定义文件,@types/chai-bytes 中也没有可用的定义。

因此,我为 chai-bytes 插件编写了自己的类型定义文件(非常简单),但在执行过程中npm test出现以下错误:

VS Code 为我提供了完整的 Intellisense,所以我认为我的类型定义文件有效并且至少可以被 VS Code 找到。

这是我的目录结构:

我试图将类型定义文件移动到源树(几个地方),但没有任何效果,此外,有时它变得更糟,以至于甚至 VS Code 都找不到它了。

这些是我的配置文件:

包.json:

tsconfig.json:

mocha.opts:

类型\柴字节\index.d.ts:

BitArray-test.ts(仅相关测试):

npm --version3.10.10

node --versionv6.11.1

我可以改用Buffer.compare作为解决方法,但是我不会在错误消息中看到缓冲区的内容,而只能看到-1,01. (而且它不会解决问题。)

目前,我被困在这一点上,非常感谢任何帮助。

0 投票
0 回答
3347 浏览

typescript - 使用 @vue/cli-plugin-unit-mocha、TypeScript 和 SFC 为 VueJS 项目生成纽约市覆盖率报告

我目前正在为使用 @vue/cli-plugin-unit-mocha 运行单元测试的 Vue 项目设置测试环境。该项目使用 TypeScript 和 .vue 单文件组件。我已成功设置我的项目以运行单元测试并为 TypeScript 文件生成代码覆盖率报告,但是当我尝试为 SFC 添加测试时出现错误。

要生成覆盖率报告,我使用 nyc + istanbul-instruenter-loader。我认为我的配置对于常规 Typescript 文件是正确的,但是当它必须处理 .vue 文件时,istanbul-instrumenter-loader 会引发错误:

在我看来,.vue 文件似乎没有被正确转换/转译。

这是我的 package.json:

和我的 vue.config.js:

测试覆盖率失败的文件如下所示:

报告网格容器.spec.ts

由于 .vue 文件,Istanbul 抛出错误

任何帮助或指示将不胜感激!

0 投票
1 回答
110 浏览

node.js - 伊斯坦布尔测试覆盖率信息

我正在使用这个工具(https://github.com/istanbuljs/nyc)来检查我的代码的测试覆盖率,我得到这样的输出: 在此处输入图像描述

那么,问题是如何在不解析此表的情况下仅获取数字信息?也许纽约市有用于检索此类信息的 api?

0 投票
1 回答
510 浏览

node.js - 如何使用 NYC 获得单元测试和集成测试的综合覆盖率

我想获得单元测试和集成测试的综合覆盖。

我有用于单元测试和集成测试的单独文件夹。在我的管道 ci 中,我有一个单独的阶段用于单元测试和集成测试,因为集成测试需要依赖项。

包.json

现在我分别获得了他们两个的报道,但我可以看到它并不是所有报道的真实反映。

有什么办法可以结合覆盖范围摘要。这可能意味着我需要将管道中的两个阶段结合起来?