问题标签 [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.
jasmine - 找到一种获取 ES6 代码覆盖率报告的好方法
这是我的问题:在 AngularJS 项目中,我使用 Babel 6(ES2015 + stage3 + decorators)、SystemJS 和 Karma + Jasmine。
一切都很好,除了代码覆盖率:我找不到获得 ES6 代码覆盖率报告而不是转译 ES5 的好方法。
我有一些限制:
- 没有 Github npm 依赖
- 没有弃用的项目(如 isparta)
- 应该在 Windows(是的,我知道,但我必须)和 GNU/Linux 上运行
这个问题特别针对本地 html 覆盖率报告,但我还需要一种可以在 SonarQube 中使用的格式。
在这个问题上似乎有一个巨大的支持湖(尤其是装饰器和 SystemJS),所以,连同 Github 上的一些问题,也许 stackoverflow 社区可以分享一种方法来做到这一点。
如果你需要一些额外的东西,你可以在 Github ( Sedona-Solutions/sdn-angularjs-seed ) 上查看这个项目,并查看相关问题 ( Sedona-Solutions/sdn-angularjs-seed#5 ) 并参考所有相关问题和我能找到的项目。
关于 remap-istanbul
这是我的编译和映射 gulp 任务:
业力覆盖
和 test:remap gulp 任务:
由于第一个 remap-istanbul 问题,我收到以下错误:
可以在 github 上看到对应的代码。
这可能是某些映射生成或路径的错误……如果您这么认为,请告诉我。
javascript - Karma 报告浏览器子文件夹
我正在使用 karma 来运行我的 javascript 测试,并生成覆盖率报告。这是我来自 karma.conf.js 的覆盖配置:
我不喜欢这个设置的是我总是得到一个以用于运行测试的浏览器命名的子文件夹。在我的情况下,我只使用 PhantomJS,并且希望将报告直接放在/coverage
. 有没有办法做到这一点?
angularjs - 业力覆盖总是给出 404 not found 响应
我正在尝试为我的角度 SPA 进行一些单元测试。我用 Karma 做了一些,它们工作得很好,但后来我决定安装 karma-coverage 来查看测试覆盖率。我已经浪费了很多时间试图查看这份报告。我安装了业力覆盖,现在我的 package.json 看起来像:
注意:我已经尝试过不同的业力和业力覆盖,但结果是一样的。我的 karma.conf.js
注意:我试过了,不同的预处理器设置,不同的coverageReporter 设置。
但结果总是一样的:我试图打开http://localhost:9876/coverage/或http://localhost:9876/coverage/index.html却找不到 404。我什至尝试更改 C:/Dev/coverage/ 上的 dir 属性,但没有创建目录。Karma 测试运行正确,但我无法获得覆盖率报告。
typescript - 如何使用 karma、typescript 和 browserify 进行代码覆盖
你如何设置业力测试运行器来生成打字稿项目的代码覆盖率报告?
鉴于以下文件夹结构和 karma.conf.js 文件,我已经在使用 karma 来运行我用 TypeScript 编写的测试。
我已经摆弄了karma-coverage
,remap-istanbul
但还没有任何运气。如果可能的话,我想在没有任何额外npm scripts
的 .
业力.conf.js
更新1:
我通过添加browserify-istanbul
到设置取得了一些进展。我认为整体指标很好,但源文件视图有点奇怪。
addSpec.ts
更新 2:
直到今天,我还想不出一种方法来使用 browserify 和 typescript 创建一个“集成的”业力设置。不过,我有一个不同的解决方案对我有用。
业力.conf.js
包.json
javascript - Karma + JSPM + Typescript - 未找到“.ts.js”
主要只是试图让 Karma+JSPM 在加载 .ts 文件时表现良好,但绝对没有运气。
我看到了一个带有精简示例的讨论回购。
基本上,在 Karma 中运行时,Karma 中的 JSPM 似乎忽略了defaultJSExtensions: true
包级别"defaultExtension": "ts"
配置,在尝试加载文件时会出现以下错误:
请注意.ts.js扩展名。尝试了从karma-typescript-proprocessor到通过不同的 JSPM 配置加载,而不是实时运行。
试图保留它,因此无需管理已.js
编译的文件而只使用这些.ts
文件。开发服务器和捆绑/构建功能齐全 - 这个测试和覆盖部分是我的最后一个障碍。
请让我知道您是否可以给我任何方向!
unit-testing - 使用 Angular 2 配置 karma webpack 的覆盖范围
如何使用 angular2 + webpack 设置业力覆盖?
我遵循了 angular 的快速入门 webpack 指南。但是覆盖工具是空白的,不显示我的测试。谢谢!
我的文件夹结构是
我的 webpack.test.js 看起来像这样
我的 Karma.conf.js
和 karma-test-shim.js
webpack - Karma,覆盖率报告结合 webpack
我已经设置了 karma 以及正在工作的覆盖率工具 - 但由于我也在使用 webpack,所以覆盖率报告使用的是 webpack 创建的捆绑代码。
例如:我有一个包含外部库的 Typescript 文件,因此为了让该文件运行它需要 webpack。然后 Webpack 将该文件包含到已编译的 JS 中。这意味着当我得到覆盖率报告时,它的百分比很低,因为我没有测试现在已经包含的外部文件。
如果我删除 webpack 部分或以其他方式放置数组 (['coverage', 'webpack']) 它会失败。
所以,我不确定我所追求的是否可能,因为没有 webpack 和编译的 TS -> JS 文件将无法通过测试。这有点像我希望分两步完成报告。
- 针对捆绑的代码运行测试并返回报告。
- 检查运行的测试并与非捆绑文件进行比较以获得准确的覆盖率报告。
如果它对任何答案都有影响,我也在使用 Jasmine 作为框架。
angular - 仅报告 karma-test-shim (Electron/Angular2/SystemJS) 的覆盖率
我所有的测试都运行并成功通过。但是我不断获得 0% 的覆盖率,或者通过 SystemJS 启动测试及其源文件的 karma-test-shim.js 的覆盖率。我也尝试过以各种方式使用 karma-coverage 作为预处理器,有时它预处理 spec.ts 文件,有时是 ts 文件,有时是 app 目录,有时是 js 文件或 spec.js 文件。我使用 Electron 浏览器在 karma-test-shim.js 文件中加载 require shim,因为这是一个使用 fs、path 等节点模块进行大量系统级操作的应用程序。我使用 SystemJS 作为应用程序和测试(没有 Webpack!)。
这个测试设置,减去 Electron 浏览器和需要 shim,与我的设置类似:https ://github.com/angular/quickstart/blob/master/karma.conf.js
这是我的 karma.conf.js 文件。