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

phantomjs - 您的平台上没有 PhantomJS 浏览器的二进制文件。请设置“PHANTOMJS_BIN”环境变量

我的 package.json 看起来像这样..

我的 npm 版本是 2.2.0

为什么我在运行 karma test 时会得到这个 - karma start my.conf.js

0 投票
1 回答
10309 浏览

javascript - Sonarqube 未从 LCOV 检索我的 JavaScript 覆盖范围

我有一个具有以下结构的应用程序:

我创建了pom.xml唯一运行 SonarQube 分析的程序。否则,所有任务都由 Grunt 运行(测试使用 Karma 运行)。

的内容pom.xml如下:

当我运行时grunt test,它会创建一个build/karma/coverage/lcov.info包含以下信息的:

在 SonarQube 分析之后,仪表板显示 0% 的代码覆盖率。

我怀疑 中的路径SF:是错误的根源。因此,我更改了sonar.javascript.lcov.reportPath属性以使用另一个属性来lcov.info测试不同的值:app.js, ./app.js, app/scripts/app.js, ./app/scripts/app.js, 但没有一个起作用,将覆盖率保持为 0%。

我错过了什么?

以防万一,我的配置中有以下配置karma.conf.js

ps:声纳版本是3.7.2,不过我也试过4.3,结果一样……


编辑:我已经更新了我的配置以直接使用 Sonar-runner,我使用的是最新版本的 Sonar(5.0.1)和 JS 插件(2.3)。我还手动修改了lcov.info具有“良好”格式(至少一种与 Sonar repo 示例匹配的格式):

sonar-project.properties看起来像:

而且,0% 的覆盖率 :(

0 投票
1 回答
7948 浏览

javascript - 如何更改 Karma 执行的 LCOV 报告的格式?

我已将 Karma 配置为报告我的 JavaScript 代码的覆盖率。这是karma.conf.js文件中配置的一部分:

我的lcov.info文件具有以下格式:

不幸的是,Sonarqube JavaScript 插件只考虑以SF:,DA:BRDA:(cf LCOVParser ) 开头的行。

因此,LCOV HTML 报告(由伊斯坦布尔制作)在相同数据上为我提供了比 Sonar 更高的代码覆盖率。

有没有办法改变lcov.info生成的格式?


如果我查看伊斯坦布尔代码,我可以想象不同标签的含义:

  • BRF, BRH,BRDA用于分支
  • FN, FNF, FNH,FNDA用于函数
  • LN, LF,LH用于线
  • *F是总数,而*H是覆盖信息。

伊斯坦布尔和声纳覆盖范围之间的差异似乎是由于后者完全忽略了功能和分支覆盖范围。

有什么办法解决这个问题吗?

0 投票
0 回答
70 浏览

angularjs - 由于回调函数中缺少参数,测试用例失败

我必须使用业力为以下代码编写一个测试用例。

但是我正面临这个问题,因为由于回调函数缺少参数而导致测试用例失败。我尝试了很多方法。但是由于 result.id 未定义,测试用例失败。以下只是我的测试用例的一个脚手架。'apiCall' 在 beforeEach 中定义。

0 投票
1 回答
193 浏览

javascript - 如何为多个 require 模块设置单元测试

我正在开发一个代码库,其中代码分为多个需要模块。即每个部分都有自己的 main.js 和 require 配置。

我想使用 Karma 为整个代码库设置代码覆盖率。

由于每个部分都有自己的 requirejs 配置,因此我为每个模块创建了一个 test-main.js。

并让 karma.config 加载所有 test-main.js 文件。

我遇到了问题。baseUrl 之间存在冲突。

仅测试一个模块时,它可以正常工作。

任何想法 ?

0 投票
2 回答
36166 浏览

karma-runner - 如何从业力代码覆盖率报告中排除文件?

有没有办法从 karma 覆盖率运行器https://github.com/karma-runner/karma-coverage的代码覆盖率报告中排除文件 ?

0 投票
2 回答
2474 浏览

ember-cli - 如何修复 Ember testem 中出现“无法加载”、“失败”、“找不到模块”或“死亡”等错误的测试?

我设法使用 HTMLBars 将几个基于 EAK/grunt 的 Ember 应用程序升级到 1.11,然后将它们迁移到 Ember CLI/Brocolli。单元测试是为 karma 测试运行器设置的,所以我现在正在研究如何让那些在 CLI 项目中运行,但我没有编写测试,也没有单元测试 javascript 模块的经验。

在 iNet 周围搜索,我可以看到其他人也使用了 karma,因为它的覆盖输出并试图让它与 Ember CLI 一起使用,但是 Ember Core 不支持它,尽管他们说任何人都应该能够得到它设置了一个自定义插件。我也在尝试使用“testem”跑步者来看看有什么坚持。

Ember 站点确实有一个针对 v1.10 的“使用跑步者进行自动化测试”页面,其中包含关于“testem”和“业力”的部分,但它没有出现在 v1.11 中,所以我无法从该站点判断什么是或不相关。但似乎我应该能够为 karma 测试运行器制定解决方案,所以我将旧的 devDependencies 添加到项目 package.json 中:

我还在项目中删除了旧的“karma.conf.js”(以及其他一些 karma conf),并更新了里面的路径(从“vendor”到“bower_components”)。我确实找到了一个“ember-cli-karma”节点模式并安装了它,但它似乎只有一个“package.json”。它没有文档,看起来只是一个没有实现的初始项目。我还安装了“karma”、“karma-cli”和“testem”节点模块。

testem 文档说要将您的 src 和测试文件添加到“testem.json”,但没有示例我不知道这意味着什么;每个 src 和测试文件的列表?用什么路径;相对的,绝对的?正斜杠,反斜杠?以 / 或 ./ 或 ../ 开头?我只是将它们排除在外,因为我认为系统只是按照惯例找到 src 和测试。

当我运行'karma init'时,我得到:

当我运行'testem'时,我得到:

...然后项目的“../tests/index.html”在浏览器中加载,但无法“找到”任何资产文件(css、js),因此无法正确执行或呈现。我只看到模板表达式({{content-for 'head'}} 等)。

当我运行“余烬测试”时,我得到:

当我运行“ember test --server”时,我得到:

带有测试报告的浏览器中加载了测试 index.html。当我取消选中“隐藏通过的测试”时,报告显示“29 通过,28 失败”。它有 11 个部分,其中特定测试可能有 3 个问题,例如“无法加载”、“失败”、“找不到模块”、“尝试注册未知工厂”或“死亡”。

有了这个,我显然在运行 testem 而不是 karma,所以不妨努力让 testem 工作并在以后弄清楚 karma。如果有更多示例和迁移故障排除文档,我可能会有系统的方法来解决其中一些问题。

0 投票
2 回答
1536 浏览

javascript - 业力覆盖和 Babel+Browserify 预处理

我正在使用 Karma 来测试我的 ES6 代码。当我添加karma-coverage到组合中时,我需要添加覆盖工具的所有源文件以生成有用的报告,但是当我这样做时,Karma 在所有浏览器中都会给我这个错误:

PhantomJS 1.9.8 (Mac OS X 0.0.0) 错误

错误:不变违规:_registerComponent(...):目标容器不是 DOM 元素。

在 /var/folders/55/9_128mq95kz1q_2_vwy7qllw0000gn/T/41cf272955d73fbba8ad1df941172139.browserify:46444:0 <- ../../node_modules/react/lib/invariant.js:49:0

我的业力配置文件是:

如果我'./client/**/*.js',files数组中删除,测试工作,但覆盖率只显示测试代码。我使用来自 gulp 的 Karma gulp-karma,但我想这与问题没有任何关系。

0 投票
2 回答
1491 浏览

javascript - 使用 Karma/Istanbul 设置目标代码覆盖率

我正在使用 Karma-Coverage(Istanbul) 运行 Karma Maven 插件以进行代码覆盖。Karma-Coverage 似乎默认为所需(建议?)代码覆盖率的 80%,但是我想在项目中强制执行 90% 的代码覆盖率。但是,我不知道在哪里设置它。

有没有办法使用 Karma/Istanbul 强制执行目标代码覆盖率?

0 投票
1 回答
2642 浏览

karma-runner - Karma 代码覆盖率 - 总是 100%?

早上好,

我有一个似乎无法解决的奇怪问题。我写出了我的 Karma 测试并正确执行,但是当我尝试连接 Karma 的代码覆盖率时,无论如何它只会 100% 吐出。

我查看了这里提出的其他问题,但似乎都没有解决我的问题。任何帮助将不胜感激。

使用:

这是我的 karma.conf.js

我的文件结构是:

谢谢!