kan*_* op 5 testing angular cicd angular15
将 Angular 从 v14 更新到 v15 后,我看到 Angular CLI 从 src/test.ts 文件中删除了行。这些行是:
declare const require: {
context(path: string, deep?: boolean, filter?: RegExp): {
<T>(id: string): T;
keys(): string[];
};
};
Run Code Online (Sandbox Code Playgroud)
和
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().forEach(context);
Run Code Online (Sandbox Code Playgroud)
这当然导致“npm run test”命令在本地失败,因为测试文件没有明确提供给 Angular。所以我将线路添加回来,一切都开始在本地工作。CI/CD 机器无法再运行“npm run test”命令。该命令将以下内容打印到标准输出:
29 11 2022 13:00:59.161:INFO [karma-server]: Karma v6.3.20 server started at http://localhost:9876/
29 11 2022 13:00:59.167:INFO [launcher]: Launching browsers ChromeHeadlessNoSandbox with concurrency unlimited
29 11 2022 13:00:59.172:INFO [launcher]: Starting browser ChromeHeadless
29 11 2022 13:00:59.649:INFO [Chrome Headless ip.ip.ip.ip (Linux x86_64)]: Connected on socket sockedId with id ID
Chrome Headless ip.ip.ip.ip (Linux x86_64): Executed 0 of 0 SUCCESS (0 secs / 0 secs)
Chrome Headless ip.ip.ip.ip (Linux x86_64) 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:25:25)
at __webpack_require__ (http://localhost:9876/_karma_webpack_/webpack:/webpack/bootstrap:19:1)
at __webpack_exec__ (http://localhost:9876/_karma_webpack_/main.js:67164:48)
at http://localhost:9876/_karma_webpack_/main.js:67165: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:67166:56
at webpackJsonpCallback (http://localhost:9876/_karma_webpack_/webpack:/webpack/runtime/jsonp chunk loading:34:1)
Run Code Online (Sandbox Code Playgroud)
不知道是什么造成了这个问题。CI/CD 机器上的缓存已被清除。
尝试添加回从 v14->v15 进行角度更新删除的行,它在本地解决了问题,而不是在 CI/CD 机器上。
编辑/更新: “ng test”现在也随机停止在我的本地计算机上工作。我摆弄了 test.ts、angular.json 和 karma.conf.js conf 文件,并再次删除了 Angular CLI 之前从 test.ts 中删除的行。现在可以在本地运行测试了。现在测试也可以在 CI/CD 机器上运行。诡异的...
小智 1
我遇到了这个问题,只有在将我的代码与他们的启动项目进行比较后才修复它:https://angular.io/ generated/live-examples/testing/stackblitz.html 。
在 Angular 15 中,他们完全删除了tests.ts。您应该删除该文件,然后编辑 Angular.json 以不引用它(只需删除“main”:“src/test.ts”选项)。
归档时间: |
|
查看次数: |
2746 次 |
最近记录: |