JSDom因果报应角度设置

问题描述 投票:1回答:1

我希望能够使用JSDOM作为浏览器在angular中使用karma运行jasmine测试。

我安装了 jsdom缘分-jsdom-launcher 使用以下命令。

npm install jsdom --save-dev
npm install karma-jsdom-launcher --save-dev

一旦安装了这些包,我就把插件添加到了karma.conf.js中

require('karma-jsdom-launcher')

然而,当我用命令运行测试时,我发现 ng test --browsers=jsdom,我得到

10% building 4/4 modules 0 active23 04 2020 13:09:45.095:INFO [launcher]: Starting browser jsdom
23 04 2020 13:09:57.422:WARN [karma]: No captured browser, open http://localhost:9877/
Error: Uncaught [TypeError: Cannot read property 'origin' of undefined]

以下是我正在使用的版本

Node version - 12
Angular version - 9

"jsdom": "^16.2.2",
"karma": "~4.3.0",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage-istanbul-reporter": "~2.1.0",
"karma-jasmine": "~2.0.1",
"karma-jasmine-html-reporter": "^1.4.2",
"karma-jsdom-launcher": "^8.0.2",

我错过了什么吗?我如何使用JSDom而不是chrome浏览器来运行我的测试?

angular karma-jasmine karma-runner jsdom
1个回答
0
投票

我能够用你发布的版本重现上述问题。

使用

"jsdom": "^16.2.2", 
"karma-jsdom-launcher": "^8.0.2",
"karma": "~4.3.0" 
"karma"-jasmine: "~2.0.1" 

我得到了同样的错误。

10% building 4/4 modules 0 active23 04 2020 13:09:45.095:INFO [launcher]: Starting browser jsdom
23 04 2020 13:09:57.422:WARN [karma]: No captured browser, open http://localhost:9877/
Error: Uncaught [TypeError: Cannot read property 'origin' of undefined]

更新后 karma~5.0.0karma-jasmine~3.0.1Error: Uncaught [TypeError: Cannot read property 'origin' of undefined] 错误消失了,但是测试还是没有启动,当应该启动Jasmine测试的时候,控制台却挂了。

茉莉花测试的FAQ中 karma-jsdom-launcher 有问题 载于此. 它说,如果使用了源码图,因果报应启动器会挂起。如果我们尝试在程序的 angular.json 加上 "sourceMap: false" 这种方式。

"test": {
  "builder": "@angular-devkit/build-angular:karma",
  "options": {
    "main": "src/test.ts",
    "polyfills": "src/polyfills.ts",
    "tsConfig": "tsconfig.spec.json",
    "karmaConfig": "karma.conf.js",
    "sourceMap": false,
    "assets": [
      "src/favicon.ico",
      "src/assets"
    ],
    "styles": [
      "src/styles.scss"
    ],
    "scripts": []
  }
},

真的有用 我为此制作了一个演示。可以在这里查看.

然而,它并不酷,因为源码图必须被禁用。这意味着你将无法在测试中使用断点,这可能是一个不方便的限制。

如果对源码图的限制感到痛苦,那么值得考虑使用无头浏览器。关于使用无头浏览器的教程 可以在这里找到.

© www.soinside.com 2019 - 2024. All rights reserved.