我有以下
karma.config.js
基于 this
module.exports = function (config) {
config.set({
basePath: '',
files: ['**/*spec.ts'],
frameworks: ['jasmine'],
plugins: [
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-jasmine-html-reporter'),
require('karma-coverage-istanbul-reporter')
],
client: {
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
coverageIstanbulReporter: {
dir: require('path').join(__dirname, '../coverage'),
reports: ['html', 'lcovonly'],
fixWebpackSourcePaths: true
},
reporters: ['progress', 'kjhtml'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false
});
};
我不明白为什么报告说执行了 0 次测试。我确定 src 文件夹中有一些扩展名为
spec.ts
的文件。
Chrome 68.0.3440 (Windows 10.0.0):执行了 0 个错误,共 0 个错误(0.079 秒/0 秒)
有人知道可能是什么问题吗?
在this答案的背景下,我意识到我的项目中没有以下文件:
我没有很早就意识到,因为这是一个安装在另一个项目上的项目。这意味着我从来不需要将这个项目作为独立的应用程序运行。
为了解决这个问题,我所做的是:
ng new my-app
如果您确定您的路径中有spec.ts文件,这是我在您的karma.config和我的之间看到的唯一区别:
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')
],
在我看这个问题之前,我的根本没有
files:
,所以你也可以尝试删除它。
您需要检查 src/test.ts 中的路径。这是我的代码。
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);
// Finally, start Karma to run the tests.
__karma__.start();
这发生在我的单元测试中,实际上是我进行的单元测试之一
import { NO_ERRORS_SCHEMA } from '@angular/compiler/src/core';
我替换为
import { NO_ERRORS_SCHEMA } from '@angular/core';