Jar*_*cio 34 javascript karma-jasmine webpack angular
我试图更新我的整个项目依赖项,并设法做到这一点,但是当我尝试运行测试时,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)
Run Code Online (Sandbox Code Playgroud)
有趣的是,在更新之前它是如何完美运行的,突然之间 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"
},
Run Code Online (Sandbox Code Playgroud)
新的依赖项:
"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"
},
Run Code Online (Sandbox Code Playgroud)
基本上把大部分都改成了最新的。我什至尝试恢复并尝试一一更新,但是一旦我更新角度它就崩溃了,为什么会这样呢?
提前致谢
don*_*jot 46
我遇到过同样的问题。由于某种原因,在我们的另一个应用程序中进行角度更新时,自动删除了 test.ts 中的一些代码,即:
const context = require.context('./', true, /\.spec\.ts$/);
context.keys().forEach(context);
Run Code Online (Sandbox Code Playgroud)
以及上面的 require 声明。
我在其他应用程序中手动执行此操作,到目前为止它有效。也许有人知道这种变化的原因。
小智 16
从 v14 升级到 v15 后,我的组件库也遇到了同样的问题。
不幸的是,从 git 历史记录中粘贴代码并没有解决我的 0 发现测试问题。
我的解决方案是删除项目/组件/src 中的 test.ts 文件及其在 tsconfig.spec.ts 的文件列表中的引用。此外,还需要对 angular.json 中的测试块进行补丁。以及 tsconfig.spec.ts 中的扩展包含模式列表
之前的 angular.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"
}
}
Run Code Online (Sandbox Code Playgroud)
之后的 angular.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"
}
}
Run Code Online (Sandbox Code Playgroud)
tsconfig.spec.ts 之前
{
"files": [
"src/test.ts"
],
"include": [
"**/*.spec.ts",
"**/*.d.ts"
]
}
Run Code Online (Sandbox Code Playgroud)
tsconfig.spec.ts 之后
{
"files": [
],
"include": [
"**/*.spec.ts",
"**/*.d.ts",
"**/*.ts"
]
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12869 次 |
最近记录: |