问题标签 [karma-webpack]

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

angularjs - 如何将业力和茉莉花包含到使用 webpack 服务的 AngularJs 项目中

我花了一整天的时间试图为我的项目设置业力。我浏览了所有教程和 StackOverflow,但无法将其集成到我的项目中。

我的项目是使用 web pack 提供的。我想问题是我无法获得对我的根应用程序模块的引用。

请帮我解决一下这个。

我尝试使用其名称导入模块,导入整个文件(js)等,但没有任何帮助。

PS:这个项目有大量的服务、组件、指令等。我们使用了 js 和jade。这是我们第一次为新功能集成单元测试。


已编辑

karma.config.js

即使我在应用程序中导入了所有 js 文件,我也无法获得对应用程序模块的引用。请注意,webpack 在 dist/ 处提供文件,该文件未在 karma.config 中导入

通过上述配置,我能够获得对应用程序的引用。

配置有什么改进吗?

0 投票
1 回答
132 浏览

angular - @Input 装饰器和 Karma 测试

@Input()在将某些组件的部分排除到较小的 UI 组件中之后,我为它们分配了从父级传递并在装饰器的帮助下获得的属性。但看起来 Karma 不理解这些输入并给我抛出错误,例如

无法绑定到“属性”,因为它不是“应用程序组件”的已知属性。

  1. 如果 'app-component' 是一个 Angular 组件并且它有 'property' 输入,那么验证它是这个模块的一部分。
0 投票
1 回答
852 浏览

angularjs - AngularJS Karma 检查 url 参数是否存在

我是单元测试的新手,并试图为我的应用程序编写单元测试。我的路线是:

我的控制器:

在我的单元测试中,我需要测试 URL 中是否存在“companyId”,然后只进行其余的重定向到“home”。我试过这段代码,但每次都失败。我不知道我做错了什么。

每次我运行这个测试时,它都会说:Expected null to equal '#/accounts/company/test-company'。

0 投票
1 回答
863 浏览

angular - Angular 5 尝试运行“ng test”时出错

尝试运行时出现错误ng test

HeadlessChrome 65.0.3325 (Windows 10.0.0) ERROR Uncaught TypeError: Cannot read property 'fn' of undefined at http://localhost:9876/_karma_webpack_/scripts.bundle.js:12

包.json

0 投票
1 回答
717 浏览

angular - Angular TestBed - Karma/Jasmine | 导入的意外值“BrowserDynamicTestingModule”| 角 AOT

测试床代码示例,遵循指南https://angular.io/guide/testing -

引发错误 -

业力配置文件 -

业力垫片 -

Webpack 开发 -

Webpack 通用配置 -

Boot.ts 因为它是唯一包含与 BrowserDynamicTestingModule 相关的任何其他文件 -

我目前正在运行 Angular AOT 5.2.0。我试过恢复到 JIT 构建,但得到了同样的错误。现在已经坚持了一段时间,任何关于导致这种情况的帮助或见解将不胜感激。

我可以正常编译和运行构建

0 投票
0 回答
745 浏览

angularjs - Karma Webpack 预处理器很慢

跑步时

webpack 预处理器工作 6-8 分钟,不断消耗 13% 的 CPU。简单我可以以某种方式优化它吗?

简单的 npm 启动

大约 1 分钟后准备就绪。

0 投票
1 回答
2442 浏览

typescript - Karma 中的源映射 TypeScript

我正在尝试使用 Webpack 为 TypeScript 设置构建过程。大多数部分一切正常。但是我无法让源映射在 Karma 测试运行器中正常工作。

问题描述

假设我有一个打字稿文件test.spec.ts(1)。该文件由 TypeScript 转译为带有内联源映射 (2) 的某些 ES5 源。最后,ES5 源代码由 Webpack 4 使用eval-source-maps (3) 捆绑,并由 Karma 测试运行程序提供给 Chrome。

通过在 Chrome 中检查 Karma Debug Runner 中的源代码,我可以看到所有三个转换阶段实际上都可用于浏览器:

  • (1) 源映射为webpack://test.spec.ts?c161
  • (2) 源映射为webpack-internal://test.spec.ts
  • (3) 可用作localhost:9876/base/test.spec.ts

在 Chrome 控制台中,我还可以获得测试执行期间抛出的所有错误的正确堆栈跟踪。正如我所料,这些包括源映射到 (1) 的行号。例如:

然而,Karma 本身会记录错误,其中行号仅源映射到 (2)。例如:

这完全没有帮助,因为 (2) 只是一些中间源,甚至从未写入磁盘。事实上,我不需要 (2) 的源映射,也不明白为什么首先包含它们。如果可能的话,我想尝试禁用它们(当然,同时为 (1) 保留正确的源映射)。

无论如何,重要的是让 Karma 使用相对于原始文件的行号报告堆栈跟踪,就像在 Chrome 控制台中所做的那样。如有必要,我也愿意为此牺牲执行速度

如果您想不出一个完整的解决方案,但对 TypeScript / TS-Loader / Webpack / Karma-Webpack / Karma 有一些见解:我也对任何有助于查明该工具链上的问题的论点感兴趣。

最少的测试配置

devDependencies 来自package.json

karma.conf.js

tsconfig.json

0 投票
1 回答
1098 浏览

jquery - 我将如何使用 karma/jasmine 对这个简单的 jQuery 代码进行单元测试?

我正在创建一个 webpack 入门应用程序以支持轻量级 Typescript 和 jQuery 开发。到目前为止,它运行良好,可以做所有我希望它做的很酷的事情,比如自动检测编辑、在你更改内容时重建和重新启动应用程序等。它还支持单元和 e2e 测试。

但是我从来没有对 jQuery 代码进行过单元测试,我什至不知道从哪里开始测试这个极其简单的“Hello, world!”。应用程序:

确保已设置此消息的单元测试是什么样的?

我已经安装karma-jquerykarma-jasmine-jquery. 我在谷歌上搜索了很多关于如何使用这些工具的例子,但我所看到的没有一个与我试图解决的简单问题相匹配。

更新:

我想我越来越接近我想要用以下不太工作的测试做的事情:

这不起作用并不让我感到惊讶,因为它监视了一个 jQuery 原型方法,而我认为我需要监视的是一个特定的 jQuery 对象,但是如何创建它并监视它以便它与选择器一起工作#message,我还没有线索。

0 投票
0 回答
566 浏览

angular - Karma 在 Angular/Cordova 项目上编译错误 - 找不到名称“X”(“FileError”、“Entry”、“DirectoryEntry”等)

我正在尝试使用 Karma/Jasmine 改造现有的 Angular 6/Cordova 项目。我已经安装了所有先决条件和软件包并配置了所有软件包配置文件。我有 karma 测试运行程序,但现在我的 Karma 编译输出中出现了一堆类型依赖错误(见下文)。

我创建了一个简单的 .spec.ts 文件作为简单测试,以查看框架是否正常工作:

这是编译器输出:

这是我的 karma.config.js 文件:

这是我的 angular.cli.json 文件:

测试.ts:

最后是我的 package.json:

非常感谢我为什么仍然收到这些错误的任何想法!

0 投票
1 回答
581 浏览

angular-cli - RangeError:角度 cli 业力上的字符串长度无效

Karma 因上述错误而崩溃。即使有一个全新的 Angular cli 项目。

{ "dependencies": { "@angular/animations": "^4.2.4", "@angular/common": "^4.2.4", "@angular/compiler": "^4.2.4", "@angular/core": "^4.2.4", "@angular/forms": "^4.2.4", "@angular/http": "^4.2.4", "@angular/platform-browser": "^4.2.4", "@angular/platform-browser-dynamic": "^4.2.4", "@angular/router": "^4.2.4", "@types/moment": "^2.13.0", "core-js": "^2.4.1", "karma-phantomjs-launcher": "^1.0.4", "lodash": "^4.17.10", "moment": "^2.11.2", "rxjs": "^5.4.2", "zone.js": "^0.8.14" }, "devDependencies": { "@angular/cli": "1.3.1", "@angular/compiler-cli": "^4.2.4", "@angular/language-service": "^4.2.4", "@types/jasmine": "~2.5.53", "@types/jasminewd2": "~2.0.2", "@types/node": "~6.0.60", "codelyzer": "~3.1.1", "jasmine-core": "~2.6.2", "jasmine-spec-reporter": "~4.1.0", "karma": "~1.7.0", "karma-chrome-launcher": "~2.1.1", "karma-cli": "~1.0.1", "karma-coverage-istanbul-reporter": "^1.2.1", "karma-jasmine": "~1.1.0", "karma-jasmine-html-reporter": "^0.2.2", "protractor": "~5.1.2", "ts-node": "~3.2.0", "tslint": "~5.3.2", "typescript": "~2.3.3" } }

其他不使用 angular cli 的测试工作。我已经重新启动,npm i,几乎完成了一切。

小号