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

Angular测试报错:test.ts文件不存在,如何生成该配置文件?

解决Angular测试中缺失test.ts的问题

你遇到的核心问题是示例项目没有包含Angular测试必需的test.ts入口文件,这是运行ng test的关键文件之一。下面是一步步的解决方案:

1. 创建标准的test.ts文件

在你的项目src目录下新建test.ts文件,粘贴以下内容:

// This file is required by karma.conf.js and loads recursively all the .spec and framework files

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

declare const require: {
  context(path: string, deep?: boolean, filter?: RegExp): {
    <T>(id: string): T;
    keys(): string[];
  };
};

// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(
  BrowserDynamicTestingModule,
  platformBrowserDynamicTesting(),
);

// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().forEach(context);

这个文件的作用是初始化Angular测试环境,并自动加载项目中所有.spec.ts测试文件,是Angular测试的标准入口。

2. 验证angular.json中的测试配置

打开项目根目录的angular.json,找到projects下你的项目配置里的test部分,确保main字段指向正确的test.ts路径:

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

注意检查路径是否正确(比如你报错里的C:Code是路径格式错误,只要main字段用相对路径src/test.ts就不会有这类问题)。

3. 检查karma.conf.js的配置

打开src/karma.conf.js,确保文件是Angular标准配置:

module.exports = function (config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine', '@angular-devkit/build-angular'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-jasmine-html-reporter'),
      require('karma-coverage'),
      require('@angular-devkit/build-angular/plugins/karma')
    ],
    client: {
      jasmine: {
        // 可在此添加Jasmine配置项,比如关闭随机执行:`random: false`
      },
      clearContext: false // 保留浏览器中Jasmine测试报告的显示
    },
    jasmineHtmlReporter: {
      suppressAll: true // 移除重复的追踪信息
    },
    coverageReporter: {
      dir: require('path').join(__dirname, '../coverage/testing'),
      subdir: '.',
      reporters: [
        { type: 'html' },
        { type: 'text-summary' }
      ]
    },
    reporters: ['progress', 'kjhtml'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false,
    restartOnFileChange: true
  });
};

Angular CLI生成的karma.conf.js会自动读取angular.json里的main配置,所以只要angular.json配置正确,这里一般不需要额外修改。

4. 重新运行测试

完成以上步骤后,再次执行ng test,应该就能正常加载测试环境并执行你的测试用例了。

如果仍有路径相关报错,可以检查项目路径是否包含特殊字符,或者确保所有配置文件中的路径都是正确的相对路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:10:56