与Karma的每次@错误

时间:2016-05-17 18:23:46

标签: gruntjs jasmine karma-runner

当我使用模块并尝试在业力中注入控制器时,我收到此错误

PhantomJS 2.1.1 (Mac OS X 0.0.0) Tests for Profile Controller should work FAILED
        forEach@/Users/work/Sites/APP/web-app/bower_components/angular/angular.js:322:24
        loadModules@/Users/work/Sites/APP/web-app/bower_components/angular/angular.js:4548:12
        createInjector@/Users/work/Sites/APP/web-app/bower_components/angular/angular.js:4470:30
        workFn@/Users/work/Sites/APP/web-app/bower_components/angular-mocks/angular-mocks.js:2954:60
        /Users/work/Sites/APP/web-app/bower_components/angular/angular.js:4588:53
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 1 of 1 (1 FAILED) ERROR (0.004 secs / 0.016 secs)

我的考试

describe('Tests for Profile Controller', function(){

  beforeEach(module('app'));
  var scope, $controller;

  beforeEach(inject(function(_$controller_) {
      $controller = _$controller_;
    }));

  it('should work', function(){

    expect('defined').toBeDefined();
  })
})

我的Karma配置看起来像这样

module.exports = function(config) {
  config.set({

    basePath: '',

    frameworks: ['jasmine'],

    files: [

      'bower_components/angular/angular.js',
      'bower_components/angular-mocks/angular-mocks.js',
      'dist/js/combined.bower.js',
      'app/js/routes.js',
      'app/js/controllers/profile.js',
      'app/test/unit/controllers/profile.spec.js'
    ],

    exclude: [
    ],

    preprocessors: {
    },

    reporters: ['progress'],

    port: 9876,

    colors: true,

    logLevel: config.LOG_INFO,

    autoWatch: true,

    browsers: ['PhantomJS'],

    singleRun: false,

    concurrency: Infinity
  })
}

我的apps模块是在我的routes.js(不是我的想法)中定义的,我现在尝试测试的控制器是profile.controller。我的bower.combined是我所有的凉亭组件连接和缩小。出现这种情况的原因是什么?

1 个答案:

答案 0 :(得分:1)

事实证明,这是我的业力骗局中如何加载事物的问题。我通过首先加载一个组合的凉亭文件解决了这个问题,然后角度模拟(由于某种原因在组合的凉亭中是不够的,接着是我的角度模块(我必须将声明从我的路线文件中分离出来,然后是我的控制器文件夹,然后我的测试文件夹。我能给出的最好的建议是帮助我将测试分离到一个简单的控制器。将其内容复制到另一个文件并加载范围。让测试工作。然后慢慢重新添加依赖项以查看什么打破