Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 因果报应不存在';找不到配置文件中指定的文件_Javascript_Angularjs_Unit Testing_Karma Runner - Fatal编程技术网

Javascript 因果报应不存在';找不到配置文件中指定的文件

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:

我正在为我的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: '.',
    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?你确实用过,对吧?让我们