Karma jasmine Karma没有指定js文件的路径

Karma jasmine Karma没有指定js文件的路径,karma-jasmine,Karma Jasmine,我使用Angular CLI创建了一个项目。它创建了如下karma.config.js。我注意到该文件不包含规范文件的配置/路径,但我仍然可以使用npm test运行karma。为什么 module.exports = function (config) { config.set({ basePath: '', frameworks: ['jasmine', '@angular/cli'], plugins: [ require('karma-jasmin

我使用Angular CLI创建了一个项目。它创建了如下karma.config.js。我注意到该文件不包含规范文件的配置/路径,但我仍然可以使用
npm test
运行karma。为什么

module.exports = function (config) {
  config.set({
    basePath: '',
    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 // leave Jasmine Spec Runner output visible in browser
    },
    coverageIstanbulReporter: {
      reports: [ 'html', 'lcovonly' ],
      fixWebpackSourcePaths: true
    },
    angularCli: {
      environment: 'dev'
    },
    reporters: ['progress', 'kjhtml'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false
  });
};
规范文件位于位置
/src/app/app.component.ts
。我希望karma.conf.js包含以下行

files: [
'src/**/*.js'
]

在Angular CLI项目上使用Karma时,默认情况下,它会使用
src/test.ts
文件。您可以在.angular-cli.json中找到:

...
"test": "test.ts",
...
(看起来karma文件顶部的Angular CLI插件就是搜索test.ts的插件。)

如果查看test.ts,您将看到它初始化了测试环境,然后执行以下操作:

const context = require.context('./', true, /\.spec\.ts$/);
context.keys().map(context);
这包括
src
目录中的所有规范文件。通过要求这些规范文件,它们将包含在测试运行中。您还可以删除该块并执行以下操作:

require('./app/search/search.component.spec.ts')

例如,这将只运行该规范文件中的测试