我正在为我的
Angularjs应用程序编写Jasmine测试.
我使用karma init生成了karma.conf.js,但是当我运行karma start时,我得到这样的警告:
我使用karma init生成了karma.conf.js,但是当我运行karma start时,我得到这样的警告:
WARN [web-server]: 404: /bower_components/angular/angular.js WARN [web-server]: 404: /js/app.js
karma.conf.js在我的app文件夹中,也就是bower_components文件夹的位置.
我想也许这可能是因为我使用这种方法的本地测试服务器:https://github.com/mhevery/angular-node-socketio
(我已经能够在没有测试服务器的其他项目中设置这样的测试)
请问有谁可以指出我正确的方向吗?
更新:
我的karma.conf.js看起来像这样:
module.exports = function(config) { config.set({ basePath: '.',frameworks: ['jasmine','requirejs'],files: [ 'tests/*.js','js/*.js','bower_components/angular/angular.js','bower_components/angular-mocks/angular-mocks.js','bower_components/angular-resource/angular-resource.js','bower_components/d3/d3.js' ],exclude: [],reporters: ['progress'],port: 9876,colors: true,logLevel: config.LOG_INFO,autoWatch: true,browsers: ['Chrome'],captureTimeout: 60000,singleRun: false }); };
这是我的目录结构:
解决方法
现在您已经修复了基本路径(从’.’到”,请参阅上面的问题评论),您应该更改karma.conf.js中加载的文件的顺序:
module.exports = function(config) { config.set({ basePath: '.',files: [ //load angular.js first //(unless if you use jQuery which must be first if I remember well) 'bower_components/angular/angular.js',//Then angular-modules 'bower_components/angular-resource/angular-resource.js',//Other libs 'bower_components/d3/d3.js',//Your app scripts 'js/*.js',//And your specs 'tests/*.js' ],singleRun: false }); };
你可以在这里找到更多信息:http://karma-runner.github.io/0.10/config/files.html
Ordering
- The order of patterns determines the order of files in which they are included in the browser.
- Multiple files matching a single pattern are sorted alphabetically.
- Each file is included exactly once. If multiple patterns match the same file,it’s included as if it only matched the first pattern.