Javascript 因果报应不存在';找不到配置文件中指定的文件
我正在为我的Angularjs应用程序编写Jasmine测试。 我使用karma init生成了karma.conf.js,但当我运行karma start时,会收到如下警告:Javascript 因果报应不存在';找不到配置文件中指定的文件,javascript,angularjs,unit-testing,karma-runner,Javascript,Angularjs,Unit Testing,Karma Runner,我正在为我的Angularjs应用程序编写Jasmine测试。 我使用karma init生成了karma.conf.js,但当我运行karma start时,会收到如下警告: WARN [web-server]: 404: /bower_components/angular/angular.js WARN [web-server]: 404: /js/app.js module.exports = function(config) { config.set({ basePath:
WARN [web-server]: 404: /bower_components/angular/angular.js
WARN [web-server]: 404: /js/app.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位于我的应用程序文件夹中,这也是bower_components文件夹的位置
我想这可能是因为我的本地测试服务器使用了这种方法:
(我已经能够在没有测试服务器的其他项目中设置类似的测试)
有人能给我指一下正确的方向吗
更新: 我的karma.conf.js如下所示:
WARN [web-server]: 404: /bower_components/angular/angular.js
WARN [web-server]: 404: /js/app.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: '.',
frameworks: ['jasmine', 'requirejs'],
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',
'bower_components/angular-mocks/angular-mocks.js',
//Other libs
'bower_components/d3/d3.js',
//Your app scripts
'js/*.js',
//And your specs
'tests/*.js'
],
exclude: [],
reporters: ['progress'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
captureTimeout: 60000,
singleRun: false
});
};
您可以在此处找到更多信息:
订购
您的问题可能是加载文件的顺序 您可能需要将订单更改为以下内容:
files: [
'bower_components/angular/angular.js',
'bower_components/angular-mocks/angular-mocks.js',
'bower_components/angular-resource/angular-resource.js',
'bower_components/d3/d3.js',
'js/*.js',
'tests/*.js'
],
您可以添加karma.conf.js代码和项目目录结构吗?这不是问题的解决方案,但是如果您查看教程中的angular seed项目,您就可以安装环境,并且可以进行测试。使用批处理文件/脚本运行服务器,它将监视您的目录是否有更改,并立即运行测试。@glepretre:更新了我的问题。我认为问题出在您的karma.conf.js
basepath
:您是否可以尝试使用'
(不带点)?您还应该将logLevel:config.LOG\u INFO,
更改为logLevel:config.LOG\u DEBUG,
,以查看终端中的更多信息。我认为这有点帮助,但是,现在我在我的app.js文件中得到了:“未捕获的引用错误:角度未定义”。我的app.js文件如下所示:angular.module('app',['ngResource','app.controllers','app.factories','app.directives','app.filters']);你停止并重新开始了业力吗?Karma无法在autowatch中看到Karma配置的更改。我们显然遗漏了一些东西。我想你的应用程序工作正常(在浏览器中)。在index.html头部加载哪些脚本?在index.html中,我加载了一个名为commonScripts.js的文件,该文件使用document.write添加以下脚本:angular.js、angular-mocks.js、angular-resource.js、d3.js、app.js、controllers.js、filters.js、directiveries.js和factories.js。是的,它在浏览器中运行良好。也许错误来自RequireJs?你确实用过,对吧?让我们