我有一个按功能排序的大型 angularjs 项目。我想设置单元测试,但在获取 karma.conf.js 文件排序设置时遇到问题。
我尝试指定一个简单的 glob 模式,如 **/*.js,但我的许多模块由于运行时包含在 Karma 中的顺序而无法加载。据我了解,这是按字母顺序排列的第一个匹配项。
我能够通过执行以下操作手动确定顺序来解决此问题:
// list of files / patterns to load in the browser
files: [
// External scripts
'bower_components/angular/angular.js',
'bower_components/angular-mocks/angular-mocks.js',
'bower_components/angular-cookies/angular-cookies.js',
'bower_components/angular-resource/angular-resource.js',
'bower_components/angular-route/angular-route.js',
// NOTE: ORDER IS IMPORTANT
// Modules: load module first, then all controllers, services, etc
'scripts/module1/module1.js',
'scripts/module1/**/*.js',
'scripts/module2/module2.js',
'scripts/module2/**/*.js',
// Load overall app module last
'scripts/app.js',
// Load mocks and tests
'test/mock/**/*.js',
'test/spec/**/*.js'
],
随着时间的推移,随着新模块的添加,维护起来似乎会很麻烦。有没有办法自动解决排序问题?
注意:我想到的一种可能的解决方案是将所有文件连接在一起,但我用谷歌搜索看看其他人是否这样做,但没有找到任何例子。