我使用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'
]
答案 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文件中运行测试。