You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 16无test.ts时,如何配置测试全局导入模块?

Angular 16 全局导入测试模块(添加test.ts)

1. 创建src/test.ts文件

在项目的src目录下新建test.ts,填入以下内容(根据你的需求修改全局导入的模块):

import 'zone.js/testing';
import { getTestBed } from '@angular/core/testing';
import {
  BrowserDynamicTestingModule,
  platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';

// 导入你需要全局引入的模块
import { YourGlobalModule } from './app/modules/your-global.module';

// 初始化Angular测试环境
getTestBed().initTestEnvironment(
  BrowserDynamicTestingModule,
  platformBrowserDynamicTesting(),
  { teardown: { destroyAfterEach: true }},
);

// 全局配置测试模块,所有测试用例会自动继承这里的导入
getTestBed().configureTestingModule({
  imports: [YourGlobalModule],
  // 按需添加全局声明的组件、指令或提供者
  // declarations: [],
  // providers: []
});

2. 修改angular.json配置

找到项目配置里的architect -> test -> options,将main字段的值改为src/test.ts(替换原来的测试入口文件,比如默认的src/test-setup.ts):

{
  "projects": {
    "your-project-name": {
      "architect": {
        "test": {
          "options": {
            "main": "src/test.ts",
            // 其他原有配置保持不变
          }
        }
      }
    }
  }
}

3. 调整Karma配置(如果需要)

打开karma.conf.js,确保files数组包含src/test.ts,并配置对应的预处理器:

module.exports = function (config) {
  config.set({
    files: [
      { pattern: 'src/test.ts', watched: false }
    ],
    preprocessors: {
      'src/test.ts': ['webpack', 'sourcemap']
    },
    // 其他原有配置保持不变
  });
};

完成以上步骤后,所有测试用例都会自动加载你在test.ts中配置的全局模块,无需在每个测试文件中重复导入。

内容的提问来源于stack exchange,提问作者Matt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 06:52:40