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

typescript - 使用 karma-jasmine 和 istanbul 的 Typescript 代码覆盖率

我正在尝试在 karma.conf 中使用伊斯坦布尔的 karma 框架获取我的打字稿代码的代码覆盖率,包括打字稿文件,通过业力打字稿预处理器,我们能够对打字稿代码进行单元测试和代码覆盖率,但代码覆盖率报告来了转码 JavaScript 代码

如何获取打字稿代码的覆盖率报告?

这是我的karma.conf文件。

0 投票
2 回答
2316 浏览

javascript - 业力覆盖率报告显示代码已覆盖(显然未覆盖)

我试图生成 HTML 覆盖率报告,但它不包含我期望的输出。也许我在这里错了,但它应该只显示那些从规范文件中调用的行和方法,对吗?

不知何故,它没有。

更新:

我创建了一个存储库来提供一个工作示例,概述了问题:

https://github.com/gearsdigital/stunning-octo-train

这是我的(测试)项目设置。如果需要,我可以将其推送到 GitHub 存储库,因为我不知道如何设置 JSFiddle 来运行此代码。

TL;博士

有一个生成 HTML 覆盖率报告的过程。该报告显示了已覆盖的代码,显然没有覆盖,因为没有可用的测试。

业力.conf.js:

webpack.config.js:

webpack.test.config.js:

bootstrap.js:

计算器.js:

bootstrap.spec.js:

生成的报告:

我希望add()被发现,因为它没有在任何测试中调用,而是在bootstrap.js.

覆盖率报告

项目结构:

项目树

0 投票
0 回答
55 浏览

angularjs - 将 isparta 与 karma 与 webpacked 模块应用程序一起使用

我正在尝试对我的 ES2015 角度代码进行测试覆盖。

我的 webapp 是由 gulp-angular 生成的,它默认提供一个任务,该任务使用 webpack 将我的所有 angular 模块捆绑在一个文件中,使用 babel 转译器生成 ES5 代码。

所以目前,当我尝试进行代码覆盖时,我只在我的 ES5 代码和一个文件(捆绑包)上拥有它。

我想把它放在我的 ES2015 代码和多个文件上,而不是在生成的文件上。知道我的测试任务首先启动任务以捆绑应用程序然后使用生成的文件启动测试,我想知道是否有可能在该状态下获得我想要的?(或者在那种情况下我不能使用 webpack?)

0 投票
1 回答
121 浏览

javascript - KarmaJS 中的代码覆盖率过高,具有 karma-coverage 和 Jasmine

我使用 Jasmine 作为我的 AngularJS 应用程序的测试框架。我在 Grunt & KarmaJS 的帮助下运行测试。KarmaJS 还借助karma-coverage生成代码覆盖率。

现在我已经为配置数据创建了一个模型,我还必须为其他测试实例化它。由于这个实例化,我得到了这个文件的代码覆盖率,尽管我没有对它进行任何测试。只是因为在测试运行时使用了所有行,覆盖率是 100%。

现在的问题是:有没有办法在我的测试中指定它们涵盖哪些文件?

在 PHP 单元中有一个@covers 注释,它指定测试覆盖的代码。

谢谢

0 投票
2 回答
684 浏览

karma-jasmine - 业力覆盖率始终输出 100%

我很难开始为我的应用程序编写单元测试。我的覆盖率总是报告 100%。我做了简单的测试,结果应该是 50%,但业力覆盖率不这么认为。业力进展如何报告正确的结果,但我需要使覆盖工作。

这是我的 karma.conf.coffee:

这是 test.js:

最后是 test_spec.js

代码覆盖率

业力进度结果:

0 投票
1 回答
292 浏览

karma-coverage - karma-coverage 似乎没有报告测试涵盖的项目

所以我们有业力覆盖设置和我认为正在工作的东西,但生成的报告似乎并没有考虑到所有的单元测试。我们在控制器、服务等中得到了很多“未涵盖的语句”或“未涵盖的功能”,我们​​在测试中执行了代码行。

我们只是在实现这个(和单元测试),所以我确信我们缺少一些东西,所以任何帮助我们指向正确方向的帮助将不胜感激。

这是一个片段,以防我们在测试中做错了什么:

控制器

测试

测试运行并通过,但是当我们查看覆盖率报告时,它显示“$scope.test = "A";" 这一行 例如,它没有被覆盖,方法相同。作为设置的测试是否真的不涵盖这些项目?如果是这样,是否可以提供有关我们如何不正确地进行测试的帮助?谢谢。

0 投票
1 回答
641 浏览

reactjs - isparta 模块未正确加载,因此无法运行测试用例

我的测试过去运行得非常好,但是突然之间我在运行测试时遇到了以下错误。请帮忙。我被困在这两天了。

这是一个反应项目。我正在使用 web-pack 和 babel。使用 isparta 进行代码覆盖。

这是我的 package.json:

这是我的业力配置文件:

0 投票
0 回答
32 浏览

karma-runner - 配置 Karma 使用哪些 js 文件进行覆盖

我们有一个用 Jasmin 编写单元测试的 Web 应用程序,它还使用 Karma 在构建服务器上运行测试,我们还有 SONR 显示报告和 nit 测试覆盖率。我想向 Karma 指定哪些文件应该是 testes 并且应该报告为具有单元测试以及百分比。

我如何以及在哪里配置它?

0 投票
2 回答
3644 浏览

javascript - Sourcemap + istanbul/isparta 代码覆盖 webpack + babel (for es6) + mocha (+karma)

我在https://github.com/danielbush/webpack-babel-karma-sourcemap-coverage有一个测试项目。

它由 中的两个简单源文件组成src/,其中一个带有故意错误 ( src/lib2.js)。

我想使用 babel 从 ES6 到 ES5 进行 webpack 和转换,并使用 Karma 在这个包上运行 Mocha 测试。

我已经添加了源映射并对其进行了测试,以便我可以看到原始文件的行号。

对我来说,堆栈跟踪如下所示:

在上面的最后第二行,它显示webpack:///src/lib2.js:13了原始源中的正确位置。

为了获得该映射,我这样做了:https ://github.com/danielbush/webpack-babel-karma-sourcemap-coverage/commit/6ea992cae499dccc68488bcb3eaca642ae4ed24e

我想要做的是使用诸如伊斯坦布尔(或使用伊斯坦布尔的 isparta)之类的东西添加覆盖率,以便我可以在 coverage/ 中生成 HTML 覆盖率报告,显示未覆盖的行(可能) - 以及整体覆盖率百分比。

但我想确保我的堆栈跟踪仍然像上面那样正确映射源。

我已经尝试过 isparta-loader 和 isparta-instrumenter-loader 在 webpack 中转译和检测有问题的文件,但我的行号在堆栈跟踪(上图)中略有错误。似乎有许多类似 isparta 的东西在四处飘荡,并且文档不是超级友好的。

为了更一般地表达所有这些:我正在捆绑文件和测试,然后在浏览器中测试它(业力或通过更多手动方式),我希望我的源映射(在浏览器中)指向原始行代码,同时我想要一份覆盖率报告来引用未被覆盖的原始行和文件。

0 投票
2 回答
1494 浏览

code-coverage - 为什么我的覆盖率报告显示红色覆盖线?

我可以使用 Karma、Tape 和 Istanbul(特别是 babel-istanbul)来获得我的 ES6 代码库的正确覆盖率报告,但 HTML 报告显示一些红色覆盖的行,即使它在边缘显示它们已经在测试套件中被覆盖了几次:

在此处输入图像描述

特别是,第 13 行显示了 4x 覆盖率,这反映了我刚刚编写的测试(调用concat()了四次)。

为什么那条线是红色的?