如何使用 Karma 配置在 Angular 4 中排除用于单元测试的文件夹(组件)?

zul*_*ulu 6 karma-jasmine angular

我正在使用 angular cli 版本 1.4.5 及以下是 karma.conf.ts 文件

module.exports = function (config) {
  config.set({
  basePath: '',
  exclude: [
     "src/app/components/panel/panel.component.spec.ts",
     "src/app/components/accordion/accordion.component.spec.ts"
   ],
   frameworks: ['jasmine', '@angular/cli'],
   plugins: [
     require('karma-jasmine'),
     require('karma-chrome-launcher'),
     require('karma-jasmine-html-reporter'),
     require('karma-coverage-istanbul-reporter'),
     require('@angular/cli/plugins/karma')
   ],
   client:{
     clearContext: false 
   },
   coverageIstanbulReporter: {
     reports: [ 'html', 'lcovonly' ],
     fixWebpackSourcePaths: true
   },
   angularCli: {
     environment: 'dev'
   },
   reporters: ['progress', 'kjhtml'],
   port: 9876,
   colors: true,
   logLevel: config.DEBUG,
   autoWatch: true,
   browsers: ['Chrome'],
   singleRun: false
 });
};
Run Code Online (Sandbox Code Playgroud)

我什至在 tsconfig.spec.json 文件中添加了 exclude 以排除选择这些文件进行测试。

{
 .....,
 "include": [
 "**/*.spec.ts",
 "**/*.d.ts"
 ],
 "exclude": [
     "app/components/panel/panel.component.spec.ts",
     "app/components/accordion/accordion.component.spec.ts"
 ]
}
Run Code Online (Sandbox Code Playgroud)

是否缺少要添加的排除项?

Sev*_*ven 6

更改配置文件中的src/test.ts.

const context = require.context('./', true, /\.spec\.ts$/);
Run Code Online (Sandbox Code Playgroud)

https://github.com/angular/angular-cli/issues/9026#issuecomment-354475734