我们已经使用UI5库构建了应用程序,并为此编写了茉莉花测试。我们很难获取这些javascript文件的覆盖范围。
项目结构: 当前,我们的项目结构包括典型的模型,视图,控制器结构。我们大约有1000个文件保存在不同的层次结构中。
眼前的问题: 我正在尝试覆盖这个项目,并为此尝试Karma。 使用默认的业力配置,我运行了测试。测试失败,根据日志,我可以看到karma期望项目中的所有文件按照其依赖关系的顺序列出。由于文件数量巨大,这对我来说将是极其困难的。
问题:
我对业力的理解正确吗?唯一的方式就是按依赖关系的顺序提供所有文件吗?
有人知道我可以使用javascript文件覆盖的任何替代解决方案或替代库吗?
完整的karma.config.js
module.exports = function (config) {
config.set({
basePath: '',
frameworks: ['jasmine', 'openui5'],
openui5: {
path: "https://sapui5.hana.ondemand.com/resources/sap-ui-core.js",
useMockServer: false
},
client: {
openui5: {
config: {
theme: 'sap_bluecrystal',
libs: 'sap.m,sap.bpm',
resourceRoots: {
"sap.bpm": "base/target/appresources/com/sap/bpm",
}
}
}
},
files: [
'src/**/*.js' , 'test/**/*.js'
],
preprocessors: {
'test/**/*.js': ['coverage']
},
captureTimeout: 210000,
browserDisconnectTolerance: 3,
browserDisconnectTimeout: 210000,
browserNoActivityTimeout: 210000,
plugins: [
'karma-jasmine',
'karma-coverage',
'karma-chrome-launcher',
'karma-openui5',
'karma-requirejs'
],
reporters: ['progress', 'coverage'],
port: 9878,
colors: true,
logLevel: config.LOG_DEBUG,
autowatch: false,
browsers: ['Chrome'],
singleRun: true,
concurrency: Infinity,
coverageReporter: {
includeAllSources: true,
dir: 'coverage/',
reporters: [
{ type: "html", subdir: "html" },
{ type: 'text-summary' }
]
}
});
};
答案 0 :(得分:0)
好吧:在预处理程序条目中,您必须指定要覆盖的文件。
在conf文件中设置测试文件以进行检测,这不太可能是您想要实现的目标
切换到
preprocessors: {
'src/**/*.js': ['coverage']
},
可能会为您带来更好的结果:)