问题标签 [karma-coverage]

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 回答
86 浏览

angularjs - Angular 1.x Browserify Jasmine 如何设置代码覆盖测试?

我正在使用带有 Browserify 的 Angular (1.x) 和 Jasmine 作为测试框架。我想运行代码覆盖率测试。我在网上研究了一下,这里和那里都有一些例子,有些例子不起作用。我想知道是否有人有为 angular+browserify+jasmine 设置代码覆盖率测试的经验?如果github中有repo我可以参考?

0 投票
1 回答
4557 浏览

javascript - SonarQube 没有从 lcov 读取 javascript 测试覆盖率

我正在将 Karma 测试集成到 maven 中,并使用 SonarQube 进行测试覆盖率报告。

虽然我能够查看 HTML 业力测试覆盖率报告(覆盖类型 HTML in karma.conf.js),但当类型为 lcov in 时,我无法在 SonarQube 中查看结果karma.conf.js

内容pom.xml

当我运行它时,它会在属性中提到的mvn clean install sonar:sonar创建 lcov.info 文件。<sonar.javascript.lcov.reportPath>

文件内容lcov.info

运行后,SonarQube 仪表板显示 js 代码违规但不填充代码覆盖率。 在此处输入图像描述

中的配置karma.conf.js

正在使用的 SonarQube 版本是5.0.1和 js 插件版本是2.11

我猜问题出在相对路径上,我确实在此处此处浏览了这些链接,尝试手动更新 SF 路径以相对指向lcov.info文件,但均无济于事。% 仍然为 0。

如果我在这里做错了什么,请告诉我。下面的控制台日志,所有被引用的路径都是正确的。

0 投票
1 回答
211 浏览

jasmine - 如何检查 src 文件或规范是否已被 karma 加载?

我正在为 jasmine 测试套件运行 karma 测试运行器。我不确定我的源文件和规范文件是否正在加载。如何检查 src 文件或规范是否已被 karma 加载?

0 投票
1 回答
1463 浏览

angular - Angular Karma WARN [web-server]:运行测试时出现 404

我一直在尝试为 angular2、sass 和 ng2-bootstrap 设置一个基础项目,这个项目基于 angular2-seed 项目,你可以在这里找到整个代码库:https ://github.com/ omargon/angular-seed-sass-ng2-bootstrap一切都按预期构建,用于开发和产品分发。但是每当我尝试运行我的 uni 和 e2e 测试时,我都会收到以下错误:

欢迎任何帮助。

0 投票
1 回答
129 浏览

node.js - `Can not load "coverage"!` 尝试运行 Karma Coverage 时的消息

我提出这个问题的原因是因为我可以在 StackOverflow 上找到的唯一 Q/As 与找不到插件有关,解决方案是添加到插件列表中。但是,这是不同的,因为插件已成功找到,但无论如何都无法加载。

我不确定我需要更改或做什么才能使覆盖范围成功运行。

下面是我尝试通过 Grunt 运行覆盖任务时得到的输出。

以下是我安装的软件包版本:

0 投票
0 回答
96 浏览

angular - 业力覆盖不适用于 Angular rc1

在 Angular RC1 之后,我不得不重新配置 Karma。现在所有测试都运行正常,唯一突出的问题是:我永远无法修复业力覆盖率以显示任何内容(始终显示 100%)我 99.99% 肯定是配置问题,但我错过了什么?

我的业力.conf

0 投票
1 回答
3019 浏览

sonarqube - Karma 为具有无效行号的 Angular 项目生成 lcov 报告

我有一个带有一些测试的 Angular 项目。我的构建是用 Gulp 编写的。我使用 Karma 运行测试并生成 lcov 报告。

然后我使用 gulp-sonar 插件来运行 Sonar。我的声纳配置如下所示:

Sonar 运行并分析代码,但在尝试使用以下内容读取 lcov 报告时失败:

对于我拥有的几乎每个 js 文件,依此类推。

如果我生成一个 html 覆盖率报告,那么该报告看起来不错,因此似乎该报告正在正确生成。

我想知道这是否是由我使用的 karma-browserify 步骤引起的。

有人可以帮助我的 lcov 报告错误吗?

有没有人设法获得与 karma 和 browserify 一起使用的 lcov 覆盖率报告?

0 投票
0 回答
236 浏览

node.js - Webpack 的 Karma 代码覆盖率不正确

我目前使用 Karma 作为我的 Webpack 测试运行器。我注意到不包含测试的简单测试文件给了我 92.86% 的语句覆盖率、50% 的分支覆盖率、100% 的函数覆盖率和 92.86% 的行覆盖率。

当我检查缺少覆盖的地方时,我看到了这段代码(第 10 行),它由 Webpack 注入到我的模块中,没有被测试覆盖:

我无法对此进行测试,因为 Webpack 正在将此代码注入到模块中。那么如何阻止此类信息包含在覆盖率报告中呢?

覆盖率报告给我的整个渲染文件如下:

我不希望将 jQuery 和 Webpack 项之类的内容包含在代码覆盖率报告中。如何将上述代码之类的内容排除在我的测试之外?因为没有测试且没有导入/要求的测试文件应该是 100% 的覆盖率。

0 投票
1 回答
1093 浏览

typescript - Karma Coverage 找不到文件(angular2 / typescript)

我正在使用带有 typescript 的 Angular 2 设置应用程序,但在获取我的业力覆盖范围以查找我希望它检查的文件时遇到问题。我已经在 Angular 1.x 应用程序上成功设置了它,但打字稿似乎缺少另一层。

一切运行良好,我看到我的所有单元测试都按预期被 karma 检查,覆盖率表明一切正常,并且我的代码具有 100% 的覆盖率,这引发了一个危险信号。在检查 html 输出的覆盖率后,我看到我有 100% 的覆盖率,因为没有检查任何文件。

查看终端中的输出,我看到我使用 pattern: './src/**/*.js' 选择的所有文件都被排除在外,这意味着它只查找 .ts 文件而不编译它们进入js。

我还在覆盖输出上方的终端中看到一条消息,上面写着“无法找到源中指定的所有文件,继续进行部分重新映射。”

我添加了 typescriptPreprocesser 认为它会在测试期间将 ts 文件转换为 js 文件,以便覆盖工具可以解析它们,但到目前为止我所做的一切都没有奏效。

这是我的完整的 karam.conf.js 文件:

我的终端输出以防它有帮助:

关于我在这里做错了什么有什么想法吗?

0 投票
1 回答
63 浏览

angularjs - 如何从代码覆盖率数字中排除 browserify 生成的代码?

我使用 browserify 将我们所有的 Angular js 代码捆绑到一个文件中。我们使用 karma + jasmine 对这个文件 app.js 进行单元测试。作为 browserify 打包的一部分,它会在文件的开头注入一行代码:

我尝试在该行上方放置一个/*instanbul ignore next*/,但会导致整个文件被忽略。这一行正在扼杀我的分支机构覆盖率。有没有忽略这个生成的代码?