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

jenkins - 来自 Karma 的 Lcov 报告未上传到声纳

我正在尝试将 lcov 报告从业力发布到声纳,该报告是在詹金斯中生成的,但它没有上传到声纳中。我们的是一个 angularJS maven 项目。声纳已经在分析 junit 测试,现在我正在尝试使用 karma 分析 javascript,但没有发生。我尝试添加

如果我遗漏了什么,请告诉我......

0 投票
1 回答
231 浏览

webpack - 重新映射伊斯坦布尔不正确的覆盖率报告

使用 typescript运行react redux 应用程序时,当使用 istanbul-remap运行karma webpack 以映射回 typescript 源代码时,我会得到不正确的覆盖结果。

例如,我向反应单元测试添加了一个更改,使代码不再进入mapStateToPropsmapDispatchToProps(忽略 redux 流程)。不使用 remap 我得到正确的覆盖率减少,如下所示:

正确覆盖减少

使用 remap 我得到不正确的覆盖结果:

错误的覆盖结果

0 投票
0 回答
376 浏览

sonarqube - 在声纳中发布 Karma 结果

我正在尝试在声纳中发布业力报告。我们是一个 angularJS 应用程序 Maven 项目。sonarqube 已经显示 junit 代码覆盖率。我已经生成了 lcov.info 文件但 sonarqube 没有拾取文件。我在声纳中包含以下属性但它不工作

sonar.javascript.jstestdriver.reportsPath=reports/

sonar.javascript.lcov.reportPath=src/main/webapp/coverage/lcov.info

任何帮助表示赞赏。

0 投票
1 回答
1653 浏览

javascript - 带有业力的覆盖率报告以及 javascript 和 typescript src 文件的混合

我有一个项目,我使用 webpack 进行开发/测试,并使用 karma 作为我的测试运行器。该项目的源文件一半用 js 编写,一半用 ts/tsx 编写。测试套件完全用 js 编写。我目前使用 karma-coverage,它显示了我所有 js 源文件的覆盖率报告,但它不支持 typescript 文件。我所有的测试都运行了,那里没有问题,我只想要我所有测试文件的覆盖率报告。谁能指出我正确的方向?

如果这有帮助,这是我的 karma.conf.js。

以及我的 webpack 测试配置的相关部分

0 投票
0 回答
268 浏览

angular - 使用 Karma 和 Jasmine 配置单元测试,并使用 istanbul 为 Angular 2 应用程序配置代码覆盖率

请在下面找到指向 bitbucket 存储库的链接

https://bitbucket.org/abhinav-cleo/harmonyangular2project

它是一个公共回购。

该应用程序是使用 angular 2 和 typescript 编写的。所有组件都在 app 文件夹中,这些组件将使用 karma 和 Jasmine 进行单元测试,并且还必须使用 istanbul 配置代码覆盖率。或者其他测试运行器和单元测试和代码覆盖框架也可以工作,例如 mocha 和 karma-coverage。

我用谷歌搜索,在所有博客和教程中,我发现作者使用了一个名为 karma-shim.js 的文件以及 karma.conf.js。我尝试以与描述相同的方式对其进行配置(当然根据我的要求修改了路径)

但我得到

错误 TS1110 构建:预期类型

当我检查详细信息时,angular2 应用程序本身的配置与我所拥有的不同......配置位于带有.config.js后缀的文件中。

谁能指导我如何设置这个应用程序的单元测试,

任何帮助或建议表示赞赏。

如果您需要我提供任何进一步的信息,请告诉我。或者如果我错过了什么...

谢谢

0 投票
0 回答
76 浏览

angularjs - 生成准确的覆盖率报告的正确方法是什么?

我有一个 Webpack 设置,它使用 webpack-dev-server 生成一个包,并在磁盘上生成一个文件。我还使用 Karma 进行了测试。我想添加代码覆盖率报告,但似乎我已经尝试了所有方法,但无法使其正常工作。

我正在使用 karma-coverage 生成一个 JSON 文件,然后通过 remap-istanbul 传递,但这会产生

Error: Could not find source map for: "/vagrant/project/media/website/js/ng/xxxxxxxx.ts"

本质上,它找不到任何正确的 Typescript 文件的源映射,因为它们不存在;它们是内联的和内存中的。

使用 Webpack 时,为 Typescript 项目生成准确覆盖率报告的正确方法是什么?(我不喜欢使用伊斯坦布尔——我只选择它,因为它似乎最受欢迎)

0 投票
2 回答
2173 浏览

javascript - 您如何使用伊斯坦布尔检查单个文件的覆盖率?

我在我的 Angular 项目上使用 karma/jasmine 运行测试覆盖率并将覆盖率输出到文件./coverage/coverage.json

然后我可以运行如下命令:

这让我获得了全球测试覆盖率。

但我想做的是只检查一个文件的覆盖范围。我该怎么做?

0 投票
1 回答
1807 浏览

javascript - Sonarqube 默认覆盖范围为 0,来自具有绝对路径的 Karma Coverage LCOV 文件

当我的 lcov 文件中的路径是绝对路径时,Sonar 不会检索我的项目的覆盖率信息。对于文件:

我收到以下警告:

但是,默认情况下,业力(和 istambul)正在生成具有绝对路径的文件。

如果我更改路径以使它们相对,则 sonarqube 会正确报告覆盖范围。但是,我必须确保在向声纳报告之前始终运行“lcov 补丁”脚本。

声纳是否支持绝对路径?其他团队正在为这个问题做些什么?这些是我正在使用的版本:

  • 业力@1.3.0 & 业力覆盖@1.1.1
  • 声纳 6.1 和 JavaScript 插件 2.14

更新:我用作业中的确切文件和日志替换了我看到的文件和日志(出于安全原因,我仍然必须更改主机和作业的名称。)

2016 年 3 月更新:我已向 Istambul 发送了一个拉取请求,以启用生成具有相对路径的 lcov 文件。我希望这能解决这个问题https://github.com/gotwarlost/istanbul/pull/771

0 投票
0 回答
128 浏览

angular - Karma Coverage - Angular 2 - Typescript - System JS Test Shim

我有业力覆盖率根据通过 systemjs 导入到我的规范(单元)测试中的项目生成报告。

我有兴趣为我的整个应用程序生成完整的代码覆盖率报告。

有没有人有幸通过 systemjs 测试垫片在 angular2 中使用 karma-coverage?

谢谢

0 投票
1 回答
393 浏览

javascript - 如何使用 Mocha / Jasmine 在控制器方法中为 if else 案例获得 Karma 覆盖?

我有以下控制器方法:

规范.js:

但是,当我运行测试时,它说语句和分支除了函数之外没有被覆盖。

谢谢