Karma正在工作而没有指定js文件的路径

时间:2017-09-01 05:10:47

标签: karma-jasmine

我使用Angular CLI创建了一个项目。它创建了karma.config.js。我注意到这个文件不包含规范文件的配置/路径,但我仍然可以使用npm test来运行业力。怎么样?

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
  });
};

spec文件位于./src/app/app.component.ts位置。我希望karma.conf.js包含以下行

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

1 个答案:

答案 0 :(得分:0)

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

...
"test": "test.ts",
...

(看起来karma文件顶部的Angular CLI插件是搜索该test.ts的那个。)

如果查看test.ts,您会看到它初始化测试Angular环境,然后执行此操作:

const context = require.context('./', true, /\.spec\.ts$/);
context.keys().map(context);

这包括src目录中的所有规范文件。通过要求这些规范文件,它们包含在测试运行中。您也可以删除该块并执行以下操作:

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

例如,那只会在该spec文件中运行测试。

相关问题