问题标签 [remap-istanbul]

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 回答
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 投票
0 回答
146 浏览

javascript - 我可以将js的“严格模式”设置为全局参数吗

我有一个使用 Mocha 生成覆盖范围的打字稿项目。我想使用 将覆盖范围转换回打字稿文件remap-istanbul,但是当我尝试在覆盖范围上运行 remap-istanbul 时,我不断收到此错误:

我已经用谷歌搜索了这个问题,我发现的两个选项是将编译更改为“ES5”而不是“ES6”(我不能这样做,因为如果我将其更改为 ES5,我的测试将失败)或"use strict";在块内添加代码(我不能这样做,因为它不是我的项目)。

有没有其他方法可以解决这个问题?

0 投票
1 回答
4642 浏览

javascript - 找不到 Karma + Jasmine + TypeScript + Webpack 的源映射

我正在尝试使用 Karma、Jasmine 和 Webpack 测试(覆盖)我的 TypeScript 应用程序。使用以下内容,我能够成功运行测试,但无法正确生成覆盖率。我正在使用karma-remap-coveragehttps://github.com/sshev/karma-remap-coverage),它看起来很简单。

看起来好像发生了一些有趣的事情(我得到了某种覆盖率报告),但是在这里和那里进行了一些调整,数字发生了巨大的变化,我永远无法真正加载源地图。

这是基本设置:

我有一个src包含 10 个.ts文件的目录。目前只有一个有相应的.spec文件。

spec文件非常简单,足以证明我可以运行测试:

tsconfig.json与我的文件配对时,这就像一个魅力:

karma.conf.js文件:

最后,我用一个简单的 Gulp 任务启动测试:

运行时,我得到一个看起来(大部分)有希望的输出:

所以有些事情正在发生!这让我觉得我很亲近。当我在浏览器中浏览到我的覆盖率报告时,我看到了.spec.ts文件和.ts列出的文件(这又是越来越近了),但由于以下几个原因,我并不在那里:

  1. .spec.ts文件包含在覆盖率报告中。由于这是测试文件,我不想包含它。
  2. 未正确生成源映射 - 从控制台中的错误以及无法浏览到特定文件的覆盖率报告中可以清楚地看出这一点。

我确实觉得我非常接近。我有什么简单的遗漏或建议吗?

更新:

我意识到我使用的是旧版本的 Node,并认为这可能会导致一些问题。我升级到6.11.0虽然没有解决任何问题,但它确实提供了更多的上下文:

错误正在报告remap-istanbul(这并不奇怪,真的):

我正在使用karma-remap-coverage@0.1.4哪些用途remap-istanbul@0.8.4- 过去似乎存在问题remap-istanbul,但在我使用的版本中没有。

也使用 Webpack2.6.1和 TypeScript2.3.2

0 投票
1 回答
568 浏览

angular - 向 ASP.NET Core Angular 2 Starter Application 添加代码覆盖率

在安装 .NET Core 2.0 SDK 后,我使用 Visual Studio 2017 Update 3 中的 Angular ASP.NET Core 2.0 模板启动了一个项目。

Karma 中的测试工作正常,但我想向 Karma 添加代码覆盖率。我尝试了几种不同的解决方案,但似乎没有什么能完全奏效。我想出的最好的方法是涵盖了从测试中引用的类(但不是 ClientApp 中的所有打字稿类),但是生成的报告中的突出显示已关闭,并且消息没有意义。

这就是我所做的:

包.json

Karma.conf.js:

webpack.config.js:

0 投票
2 回答
3098 浏览

javascript - 如何将现有的伊斯坦布尔 json 文件转换为 html

我想istanbul将从客户端获取的 JSON 格式的覆盖率报告文件转换为 html 格式。目前我正在remap-istanbul为此使用,但实际上该特定工具旨在重新映射最初用不同语言(如打字稿)编写的代码的覆盖率数据。

所以我想是否有更方便的方法来做同样的事情

0 投票
0 回答
138 浏览

aurelia - Aurelia Karma Instanbul 覆盖错误 -4075

我最近在 Aurelia 应用程序中运行 karma 时开始收到以下错误:

经过几天的研究,我没有解决这个错误。也许有人遇到了这个错误并设法修复它。

感谢您的时间。

更新

问题接缝与打字稿接口文件有关,因为代码覆盖率在 Aurelia 应用程序中使用,它针对将打字稿文件编译成 js 的“appbundle.js”运行。出现错误是因为 js 内部没有接口,因此伊斯坦布尔无法覆盖生成的空文件。这种情况应该有更清晰的代码错误......

0 投票
0 回答
282 浏览

angularjs - Karma-webpack angularjs typescript 在内联模式下损坏源映射

我有以下配置:

业力.conf.js

webpack.dev.js

tsconfig.json

有了这个配置覆盖,它可以正常工作:remap-instabul 正确地重新映射代码但是当我尝试在 Chrome 中调试单元测试时 - 源映射被破坏了。如果我在 tsconfig.json 中设置 sourceMaps: true 和 inlineSourceMaps: false - 源地图在 Chrome 中可以正常工作,但覆盖范围会被破坏:(

为了使源映射在单元测试和覆盖范围内都工作,正确的配置是什么?

0 投票
0 回答
20 浏览

lcov - lcov 文件 SF 是 remap-istanbul 的绝对路径

我需要在 remap-istanbul 输出的 lcov 文件中有相对路径。有什么办法可以改变这个吗?