当我运行ng test
时,它会遍历所有测试文件。
通过运行提供文件的路径,我找到了答案:
ng test --main src/app/pages/home-modal/home-modal.component.spec.ts
关于stackoverflow,但我认为它已被弃用,并且我收到此错误:
async()需要AsyncTestZoneSpec
这是我的karma.config.ts文件:
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-istanbul-reporter'),
require('@angular-devkit/build-angular/plugins/karma')
],
client: {
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
coverageIstanbulReporter: {
reports: ['html', 'lcovonly', 'text-summary'],
fixWebpackSourcePaths: true
},
reporters: ['progress', 'kjhtml'],
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false,
restartOnFileChange: true
});
};
有人知道在Karma for Angular 4+中运行特定文件的新方法吗?
答案 0 :(得分:0)
在您的test.ts
文件中,您应该为
const context = require.context('./', true, /\.spec\.ts$/);
/\.spec\.ts$/
的最后一部分是正则表达式,用于加载以.spec.ts
结尾的所有查找。
您可以(暂时)将其更改为/your\.component\.spec\.ts$/
,然后照常运行npm test
答案 1 :(得分:0)
要运行单个测试文件,请将文件中的describe
块更改为fdescribe
,然后像往常一样使用ng test
运行测试。
您还可以使用fit
单独运行一个测试用例。