问题标签 [isparta]

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 投票
1 回答
641 浏览

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

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

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

这是我的 package.json:

这是我的业力配置文件:

0 投票
1 回答
3340 浏览

javascript - 使用 Karma + Jasmine 对 Browserify 项目进行单元测试

我正在尝试为基于 AngularJS 的 JavaScript 插件设置单元测试。该插件通过 Gulp 与 Browserify 捆绑在一起。它取决于从文件夹中注入wiredepgulp-injectbower_components文件夹中注入的外部库。这一切在生成的包中运行良好,但如果我尝试通过 gulp 运行 Karma 单元测试,我会收到以下错误:

未捕获的类型错误:angular.module 不是 /tmp/94dbea5947f4758ab1ee6935e2f4b3f1.browserify:365 <- app/js/services/index.js:9:0 处的函数

在这个文件中,angular加载了var angular = require('angular');,并且 aconsole.log(angular)给出了一个空对象。

我的karma.conf.js

所有主要的应用程序文件都位于以下app/,bower 文件bower_components/,节点模块node_modules/和测试规范test/unit/

它基于这个样板:https ://github.com/jakemmarsh/angularjs-gulp-browserify-boilerplate 。

错误发生在 Karma 启动 Chrome 之后,但在执行任何单元测试之前(我console.log在单元测试中检查过)。

任何帮助将不胜感激。

0 投票
3 回答
3465 浏览

karma-runner - 如何让 Browserify、Babel 和 Coverage 在 Karma 中协同工作?

我越来越厌倦试图让节点库一起正常工作,但这是工作的一部分,所以就这样吧。

我有一个用于浏览器的 ES6 应用程序。当我的应用程序用 ES5 编写时,我对我的文件进行了一组单元测试。我使用 Browserify 来处理导入/导出模块和捆绑我的发行版。在浏览器中运行应用程序时,这可以正常工作。我可以成功地浏览源文件和规范文件并运行测试,并且测试通过了。我非常接近让这个工作。

唯一的问题是覆盖范围。我最接近的是显示对 karma-browserify 生成文件的覆盖,每个文件看起来像这样:

并且覆盖率显然显示为所有文件的 100%,因为每个文件都只是一行。

这是我的 karma.conf.js:

我真的不知道这些库是如何工作的,所以我不知道从哪里开始调试它。我知道预处理器的顺序很重要,因此 Browserify 在源文件上运行,将生成的链接文件提供给源映射生成器,然后源映射生成器将生成的任何内容提供给业力覆盖。但是 Browserify 和处理覆盖范围的任何东西之间存在一些通信损失。Isparta(在幕后使用伊斯坦布尔)不知道 browserify 正在运行,我不知道它看到了什么。

如果有人在测试具有适当代码覆盖率的模块化 ES6 方面有任何经验,请让我知道我是否走在正确的轨道上,或者我是否应该尝试其他方法。

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 回答
6538 浏览

javascript - 如何使用 Webpack 和 Babel 从代码覆盖率中排除规范文件?

问题

我正在开发一个配置了 、 和 . 的小型 react- webpackreduxbabel项目karma。我向业力添加了代码覆盖率,但我找不到从覆盖率中排除测试文件的方法。所以我的代码覆盖率有spec文件。

如何将这些spec文件排除在覆盖范围之外?

我尝试使用正则表达式来排除spec文件,但由于它是由 加载的webpack,所以它不起作用。

tests.webpack.js

webpack.config.js

karma.config.js

0 投票
1 回答
4299 浏览

javascript - ENFILE:Karma 文件表溢出

我在运行 Karma 测试时遇到文件表溢出问题,我不知道如何调试它。

业力.conf.js:

包.json:

测试单元.js:

错误:

12) 在 /Users/Abhi/Documents/projects/test/node_modules/karma/lib/file-list.js:161:14 在 [object Object].List._refresh (/Users/Abhi) 的 Array.map (native) /Documents/projects/test/node_modules/karma/lib/file-list.js:153:37) 在 [object Object].List.refresh (/Users/Abhi/Documents/projects/test/node_modules/karma/lib/ file-list.js:252:27) 在 [object Object].Server._start (/Users/Abhi/Documents/projects/test/node_modules/karma/lib/server.js:177:12) 在 [object Object] .invoke (/Users/Abhi/Documents/projects/test/node_modules/karma/node_modules/di/lib/injector.js:75:15) 在 [object Object].Server.start (/Users/Abhi/Documents/projects /test/node_modules/karma/lib/server.js:101:18) 在 Gulp。(/Users/Abhi/Documents/projects/test/gulp/tasks/test-unit.js:53:12)在模块。

业力问题跟踪器:https ://github.com/karma-runner/karma/issues/1979

0 投票
0 回答
125 浏览

istanbul - 使用 gulp-istanbul 实现 React.js 代码覆盖率的 Gulp 任务

我正在为一个项目使用 React.js。

我正在使用 Mocha 和 chai 作为测试框架。

现在,我想使用 gulp-istanbul 作为代码覆盖率部分。

服务器端部分工作得很好,但是当涉及到客户端时,我使用下面的代码:

但我没有用上面的代码完成工作。

似乎我无法在 gulp 任务中转换 ES6 或 ReactJS 代码。

它可以通过 gulp-jsx-coverage 等其他模块来完成,但我确实想遵循这种方法。

关于我如何完成这项任务的任何意见?

0 投票
0 回答
163 浏览

unit-testing - Karma + jspm + PhantomJS“无法加载 PhantomJS”

我在 Windows 上运行一个 Aurelia 项目,我想用 PhantomJS 运行 Karma。我在这里的骨架项目中也有类似的 JSPM 和 Babel 。

这是我的 karma.conf.js:

这是我的 gulp 文件:

我的版本:

  • JSPM: 0.16.15
  • NPM: 3.8.3
  • 吞咽: 3.9.1
  • 业力: 0.13.22

我确实有我的 PhantomJS 路径集(正在运行>phanthomjs)。

0 投票
0 回答
1813 浏览

phantomjs - 我第一次尝试使用 Karma + Mocha

我第一次尝试使用 Karma + Mocha。

主要条件是在没有任何 GUI 的 Docker 容器中运行单元测试。我没有任何浏览器,我唯一的选择是使用 PhantomJS。

我已经配置了所有必要的插件、配置等,但我收到以下错误:

ReferenceError:找不到变量:导出

在测试运行之前,我使用 Babel 将 JavaScript 源代码构建到“build”目录,然后从那里启动 Karma。

什么可能导致这个问题?

这是我的 karma.conf.js:

0 投票
1 回答
2388 浏览

angular - Angular2单元测试组件得到“没有DirectiveResolver的提供者”

我收到以下错误:

在尝试运行这个甚至没有的测试时expect(比实际到达那里更快地崩溃):

这是我的 karma.config.js:

这是我的test-setup.js

有谁知道为什么会发生这种情况或我应该做什么?