Angular 6升级后在IntelliJ中运行Karma测试报错求助
解决Angular 6升级后IntelliJ中Karma测试报错问题
我之前也碰到过一模一样的问题,Angular升级到6.x之后,直接在IntelliJ里启动Karma测试就弹出这个插件报错,原因其实很明确:
Angular 6开始改用了**@angular-devkit/build-angular**这套新的构建工具链,其中的Karma插件完全依赖Angular CLI的运行上下文,没办法像Angular 5及以前那样直接通过IntelliJ的原生Karma runner启动。而你在5.2版本能用,是因为旧版的@angular/cli/plugins/karma插件不强制依赖CLI上下文。
下面是两种快速解决的方法,优先推荐第一种:
方法一:通过npm脚本在IntelliJ中启动测试
这是最简单也最稳妥的方式,完全复用Angular CLI的运行环境:
- 点击IntelliJ右上角的运行配置下拉框,选择「Edit Configurations...」
- 点击左上角的「+」号,选择「npm」
- 在配置面板里:
- 「Package.json」选择你项目根目录的
package.json - 「Script」下拉选择
test(对应你package.json里的"test": "ng test")
- 「Package.json」选择你项目根目录的
- 保存配置后,直接运行这个npm配置就能正常执行测试,和命令行跑
ng test效果完全一致
方法二:修改Karma配置适配IntelliJ(不推荐)
如果你坚持想用IntelliJ的原生Karma runner,需要修改karma.conf.js,但这种方式可能会丢失CLI提供的部分特性:
- 打开你的
karma.conf.js,找到引入插件的部分:plugins: [ require('karma-jasmine'), require('karma-chrome-launcher'), require('karma-jasmine-html-reporter'), require('karma-coverage-istanbul-reporter'), require('@angular-devkit/build-angular/plugins/karma') ], - 替换成Angular 5风格的插件(但前提是你保留了旧版
@angular/cli依赖,不过你当前package.json里只有@angular/cli6.0.0,需要额外调整依赖,所以不推荐这种方式)
另外补充一点:确保你的IntelliJ版本是2018.1或以上,旧版本对Angular 6的支持不够完善,可能会出现各种奇怪的兼容性问题。
内容的提问来源于stack exchange,提问作者Ismael
相关产品推荐
相关产品推荐

