无法使用业力进行承保 [英] Unable to run Coverage with Karma
问题描述
我正在尝试使用业力运行覆盖范围,并且收到警告:WARN [预处理]:无法加载"coverage",它尚未注册!
I'm trying to run coverage with karma, and I get the warning: WARN [preprocess]: Can not load "coverage", it is not registered!
我以为我运行'npm install -g karma-coverage --save-dev'时就安装了Coverage
I thought I installed coverage when I ran 'npm install -g karma-coverage --save-dev'
这是我的配置文件:
module.exports = function(config) {
config.set({
// base path, that will be used to resolve files and exclude
basePath: '',
frameworks: ['jasmine'],
// list of files / patterns to load in the browser
files: [
bunch of files..
],
// list of files to exclude
exclude: [],
// use dots reporter, as travis terminal does not support escaping sequences
// possible values: 'dots', 'progress'
// CLI --reporters progress
reporters: ['progress', 'coverage'],
junitReporter: {
// will be resolved to basePath (in the same way as files/exclude patterns)
outputFile: 'test-results.xml'
},
// web server port
// CLI --port 9876
port: 9876,
// enable / disable colors in the output (reporters and logs)
// CLI --colors --no-colors
colors: true,
// level of logging
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
// CLI --log-level debug
logLevel: config.LOG_INFO,
// enable / disable watching file and executing tests whenever any file changes
// CLI --auto-watch --no-auto-watch
autoWatch: true,
// Start these browsers, currently available:
// - Chrome
// - ChromeCanary
// - Firefox
// - Opera
// - Safari (only Mac)
// - PhantomJS
// - IE (only Windows)
// CLI --browsers Chrome,Firefox,Safari
browsers: ['ChromeCanary'],
// If browser does not capture in given timeout [ms], kill it
// CLI --capture-timeout 5000
captureTimeout: 20000,
// Auto run tests on start (when browsers are captured) and exit
// CLI --single-run --no-single-run
singleRun: true,
// report which specs are slower than 500ms
// CLI --report-slower-than 500
reportSlowerThan: 500,
// compile coffee scripts
preprocessors: {
'someFileName': ['coverage'],
},
plugins: [
'karma-jasmine',
'karma-chrome-launcher',
'karma-firefox-launcher',
],
coverageReporter: {
'type' : 'cobertura',
'dir': 'coverage/'
}
});
};
推荐答案
我得到了相同的[WARN],因为未在配置插件中定义插件'karma-coverage',请尝试添加它是否可以解决您的问题警告,不确定是否能解决您的全部问题.
I got the same [WARN] because the plugin 'karma-coverage' was not defined inside the plugins of the config, try to see if adding it fixes your warning, not sure if it will fix your full problem.
plugins: [
'karma-jasmine',
'karma-coverage',
'karma-chrome-launcher',
'karma-firefox-launcher',
],
更新:
在运行coverage时,我也遇到了另一个问题,由伊斯坦布尔引起,我的错误是
UPDATE:
I also had a different problem when running the coverage, caused by istanbul, my error was
[coverage]:[TypeError:无法设置未定义的'covered'属性"
[coverage]: [TypeError: Cannot set property 'covered' of undefined]
看看伊斯坦布尔在做什么,结果发现我的一些js单元文件的路径在预处理器中已经过时.
After having a look what istanbul was doing it turned out that the paths to some of my js unit files were outdated in the preprocessors.
它正在执行某些覆盖率报告,但没有为所有文件生成深度覆盖率报告,因此会出现错误.一旦修复了路径,一切就很好了.
It was doing some of the coverage reports but it was not generating deep coverage reports for all files hence the error. Once I fixed the paths it was all good.
preprocessors : {
'**/app/js/*/*.js' : 'coverage',
'**/app/js/modules/*/*.js' : 'coverage',
'**/app/js/services/*/*.js' : 'coverage'
},
这篇关于无法使用业力进行承保的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!