javascript - 解决 karma 中源文件的依赖关系解析
问题描述
我们已经使用 UI5 库构建了我们的应用程序,并为此编写了 jasmine 测试。我们很难覆盖这些 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' }
]
}
});
};
解决方案
好的:在预处理器条目中,您必须指定要检测哪些文件以进行覆盖。
在您的 conf 文件中,您为检测设置测试文件,这不太可能是您想要实现的目标
切换到
preprocessors: {
'src/**/*.js': ['coverage']
},
可能会给你更好的结果:)
推荐阅读
- php - 建立这种 Laravel 关系的正确方法?
- npm - 在 npm 安装单个包后运行脚本(如 postinstall)?
- c++ - 对结构方法的未定义引用
- eclipse - 尝试在 Eclipse 中打开 gcov 输出时出现 java.lang.NullPointerException
- java - 将数据从弹出窗口传回其父级
- java - Java 线程关联变量
- python - 生成器,python,无限循环
- javascript - React:刷新时如何持久化数据?渲染时从 API 检索数据
- mysql - 如何在 mysql 查询中返回 0 而不是 null?
- javascript - 在 React 应用程序中导入 mongoose npm 模块时出现 TypeError