Karma Jasmine - Uncaught TypeError: __webpack_require__(..).



我试图更新我的整个项目依赖关系,并设法做到这一点,但当我试图运行测试与ng test --no-watch他们不工作,给我以下错误。

23 11 2022 12:33:58.268:INFO [Chrome Headless 107.0.5304.107 (Windows 10)]: Connected on socket JpJqOsJswlYxFGjeAAAB with id 12720855
Chrome Headless 107.0.5304.107 (Windows 10) ERROR
An error was thrown in afterAll
Uncaught TypeError: __webpack_require__(...).context is not a function
TypeError: __webpack_require__(...).context is not a function
at Object.4289 (http://localhost:9876/_karma_webpack_/webpack:/src/test.ts:18:25)
at __webpack_require__ (http://localhost:9876/_karma_webpack_/webpack:/webpack/bootstrap:19:1)
at __webpack_exec__ (http://localhost:9876/_karma_webpack_/main.js:10483:48)
at http://localhost:9876/_karma_webpack_/main.js:10484:54
at Function.__webpack_require__.O (http://localhost:9876/_karma_webpack_/webpack:/webpack/runtime/chunk loaded:23:1)
at http://localhost:9876/_karma_webpack_/main.js:10485:56
at webpackJsonpCallback (http://localhost:9876/_karma_webpack_/webpack:/webpack/runtime/jsonp chunk loading:71:1)
at http://localhost:9876/_karma_webpack_/main.js:1:87
Chrome Headless 107.0.5304.107 (Windows 10): Executed 0 of 0 ERROR (0.106 secs / 0 secs)

有趣的是,在做更新之前,它是如何完美地工作的,突然间,webpack似乎无法找到上下文?为什么?

我更改的依赖项是:

老依赖关系:

"dependencies": {
"@angular/animations": "13.3.6",
"@angular/cdk": "13.3.6",
"@angular/common": "13.3.6",
"@angular/compiler": "13.3.6",
"@angular/core": "13.3.6",
"@angular/forms": "13.3.6",
"@angular/localize": "13.3.6",
"@angular/platform-browser": "13.3.6",
"@angular/platform-browser-dynamic": "13.3.6",
"@angular/router": "13.3.6",
"@auth0/angular-jwt": "5.0.2",
"@fortawesome/angular-fontawesome": "0.10.2",
"@fortawesome/fontawesome-svg-core": "6.1.1",
"@fortawesome/free-regular-svg-icons": "6.1.1",
"@fortawesome/free-solid-svg-icons": "6.1.1",
"@ngrx/effects": "13.2.0",
"@ngrx/router-store": "13.2.0",
"@ngrx/store": "13.2.0",
"@ngrx/store-devtools": "13.2.0",
"@ngx-translate/core": "14.0.0",
"bootstrap": "5.1.3",
"core-js": "3.22.4",
"ngx-bootstrap": "8.0.0",
"@popperjs/core": "2.11.5",
"primeng": "13.3.3",
"rxjs": "7.5.5",
"svg-to-pdfkit": "0.1.8",
"tslib": "2.4.0",
"ws-blueprint-api": "file:./build/stubs/domain-a-api",
"zone.js": "0.11.5"
},
"devDependencies": {
"@angular-devkit/build-angular": "13.3.5",
"@angular-eslint/builder": "13.2.1",
"@angular-eslint/eslint-plugin": "13.2.1",
"@angular-eslint/eslint-plugin-template": "13.2.1",
"@angular-eslint/schematics": "13.2.1",
"@angular-eslint/template-parser": "13.2.1",
"@angular/cli": "13.3.5",
"@angular/compiler-cli": "13.3.6",
"@angular/language-service": "13.3.6",
"@ngrx/schematics": "13.2.0",
"@types/jasmine": "4.0.3",
"@types/jasminewd2": "2.0.10",
"@types/node": "17.0.31",
"@typescript-eslint/eslint-plugin": "5.22.0",
"@typescript-eslint/parser": "5.22.0",
"cypress": "9.6.0",
"cypress-multi-reporters": "1.6.0",
"cypress-sonarqube-reporter": "1.10.0",
"eslint": "8.15.0",
"eslint-formatter-gitlab": "3.0.0",
"eslint-plugin-import": "2.25.4",
"eslint-plugin-jsdoc": "38.0.6",
"eslint-plugin-prefer-arrow": "1.2.3",
"jasmine-core": "4.1.0",
"jasmine-spec-reporter": "7.0.0",
"karma": "6.3.19",
"karma-chrome-launcher": "3.1.1",
"karma-coverage": "2.2.0",
"karma-jasmine": "5.0.0",
"karma-junit-reporter": "2.0.1",
"karma-sonarqube-unit-reporter": "0.0.23",
"mocha-junit-reporter": "2.0.2",
"ngrx-store-freeze": "0.2.4",
"ngx-translate-testing": "6.0.1",
"prettier": "2.6.2",
"start-server-and-test": "1.14.0",
"ts-node": "10.7.0",
"typescript": "4.6.4",
"webpack-bundle-analyzer": "4.5.0"
},

新的依赖关系:

"dependencies": {
"@angular/animations": "15.0.0",
"@angular/cdk": "15.0.0",
"@angular/common": "15.0.0",
"@angular/compiler": "15.0.0",
"@angular/core": "15.0.0",
"@angular/forms": "15.0.0",
"@angular/localize": "15.0.0",
"@angular/platform-browser": "15.0.0",
"@angular/platform-browser-dynamic": "15.0.0",
"@angular/router": "15.0.0",
"@auth0/angular-jwt": "5.1.0",
"@fortawesome/angular-fontawesome": "0.12.0",
"@fortawesome/fontawesome-svg-core": "6.2.1",
"@fortawesome/free-regular-svg-icons": "6.2.1",
"@fortawesome/free-solid-svg-icons": "6.2.1",
"@ngrx/effects": "14.3.2",
"@ngrx/router-store": "14.3.2",
"@ngrx/store": "14.3.2",
"@ngrx/store-devtools": "14.3.2",
"@ngx-translate/core": "14.0.0",
"bootstrap": "5.2.2",
"core-js": "3.26.1",
"ngx-bootstrap": "9.0.0",
"@popperjs/core": "2.11.6",
"primeng": "14.2.2",
"rxjs": "7.5.7",
"svg-to-pdfkit": "0.1.8",
"tslib": "2.4.1",
"ws-blueprint-api": "file:./build/stubs/domain-a-api",
"zone.js": "0.12.0"
},
"devDependencies": {
"@angular-devkit/build-angular": "15.0.0",
"@angular-eslint/builder": "15.0.0",
"@angular-eslint/eslint-plugin": "15.0.0",
"@angular-eslint/eslint-plugin-template": "15.0.0",
"@angular-eslint/schematics": "15.0.0",
"@angular-eslint/template-parser": "15.0.0",
"@angular/cli": "15.0.0",
"@angular/compiler-cli": "15.0.0",
"@angular/language-service": "15.0.0",
"@ngrx/schematics": "14.3.2",
"@types/jasmine": "4.3.0",
"@types/jasminewd2": "2.0.10",
"@types/node": "18.11.9",
"@typescript-eslint/eslint-plugin": "5.43.0",
"@typescript-eslint/parser": "5.43.0",
"cypress": "11.1.0",
"cypress-multi-reporters": "1.6.1",
"cypress-sonarqube-reporter": "1.11.0",
"eslint": "8.28.0",
"eslint-formatter-gitlab": "4.0.0",
"eslint-plugin-import": "2.26.0",
"eslint-plugin-jsdoc": "39.6.2",
"eslint-plugin-prefer-arrow": "1.2.3",
"jasmine-core": "4.5.0",
"jasmine-spec-reporter": "7.0.0",
"karma": "6.4.1",
"karma-chrome-launcher": "3.1.1",
"karma-coverage": "2.2.0",
"karma-jasmine": "5.1.0",
"karma-junit-reporter": "2.0.1",
"karma-sonarqube-unit-reporter": "0.0.23",
"mocha-junit-reporter": "2.2.0",
"ngrx-store-freeze": "0.2.4",
"ngx-translate-testing": "6.1.0",
"prettier": "2.7.1",
"start-server-and-test": "1.14.0",
"ts-node": "10.9.1",
"typescript": "4.8.4",
"webpack-bundle-analyzer": "4.7.0"
},

基本上将它们中的大多数更改为最新的。我甚至试图恢复并尝试逐一更新,但一旦我更新了角,它就会中断,为什么会这样?

Thanks in advance

我也有同样的问题。由于某种原因,在我们的其他应用中,angular update会自动删除test中的一些代码。ts,即:

const context = require.context('./', true, /.spec.ts$/);
context.keys().forEach(context);

和上面的require声明。

我手动在我的其他应用程序中这样做了,到目前为止它是有效的。也许有人知道这个变化的原因。

从v14升级到v15后,我在组件库中遇到了同样的问题。

不幸的是,从git历史中粘贴代码并没有解决0 found test的问题。

我的解决方案是删除测试。Ts文件在projects/components/src中,其引用在tsconfig.spec.ts文件列表中。另外,测试块的一个补丁在angular。需要Json。除了在tsconfig.spec.ts

中包含扩展的包含模式列表之外,角。json在

{
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "projects/components/src/test.ts",
"tsConfig": "projects/components/tsconfig.spec.json",
"karmaConfig": "projects/components/karma.conf.js"
}
}

角。json在

{
"builder": "@angular-devkit/build-angular:karma",
"options": {
"polyfills": [
"zone.js",
"zone.js/testing"
],
"tsConfig": "projects/components/tsconfig.spec.json",
"karmaConfig": "projects/components/karma.conf.js"
}
}

tsconfig.spec。ts在

{
"files": [
"src/test.ts"
],
"include": [
"**/*.spec.ts",
"**/*.d.ts"
]
}

tsconfig.spec。ts后

{
"files": [
],
"include": [
"**/*.spec.ts",
"**/*.d.ts",
"**/*.ts"
]
}

最新更新