Unit testing 引用错误:Can';t在test.js文件中查找变量:模块或注入正在运行的单元测试

Unit testing 引用错误:Can';t在test.js文件中查找变量:模块或注入正在运行的单元测试,unit-testing,jasmine,phantomjs,karma-jasmine,angular-mock,Unit Testing,Jasmine,Phantomjs,Karma Jasmine,Angular Mock,我从PhantomJSReferenceError:not find variable:module in www/signin/tests/signin.service.tests.js和ReferenceError:not find variable:intract in www/signin/tests/signin.service.tests在下面的代码中调用它们 describe('signinService', function(){ var controller,

我从PhantomJS
ReferenceError:not find variable:module in www/signin/tests/signin.service.tests.js
ReferenceError:not find variable:intract in www/signin/tests/signin.service.tests
在下面的代码中调用它们

describe('signinService', function(){
  var controller,
      deferredSigin,
      signinServiceMock,
      stateMock,
      hasClass = function (element, cls) {
          return element.getAttribute('class').then(function (classes) {
              return classes.split(' ').indexOf(cls) !== -1;
          });
      };
  beforeEach(function(){
    module('app');
  });

  // disable template caching
  beforeEach(module(function($provide, $urlRouterProvider) {
      $provide.value('$ionicTemplateCache', function(){} );
      $urlRouterProvider.deferIntercept();
  }));

  beforeEach(inject(function($controller, $q){
    deferredSigin = $q.defer();
    signinServiceMock = {
      signin: jasmine.createSpy('signin spy').and.returnValue(deferredSigin.promise)
    };
    stateMock = jasmine.creatSpyObj('$state spy', ['go']);
    controller = $controller('SiginController', {
      '$state': stateMock,
      'signinService': signinServiceMock
    });
  }));
我的unit-test.conf.js位于应用程序的根目录中,文件路径配置如图所示

module.exports = function(config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine'],
    files: [
      'www/lib/angular/angular.min.js',
      'www/lib/angular-mocks/angular-mocks.js',
      'www/app.js',
      'www/signin/services/*.js',
      'www/signin/*.js',
      'www/signin/tests/*.js'
    ],
    exclude: [
    ],
    preprocessors: {
    },
    reporters: ['progress'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['PhantomJS'],
    singleRun: false,
    concurrency: Infinity
  });
};

我跟着。似乎角度模拟没有加载。不知道为什么。我将它传递到unit test.conf.js中的文件中,可能是您的文件路径应该是“../www/…”而不是“www/…”,因为这些路径将根据您执行脚本的位置进行解释。请参阅@AndyHasIt,她将她的unit-tests.conf.js放在项目根目录下的“tests”目录中。这就是为什么她需要以“../”开头的“www”跳出测试目录的原因。我在目录的根目录下有unit-tests.conf.js。我这样做是为了使在我的应用程序的组件子目录中编写单元测试变得容易。我检查了,无论从哪里运行,都与conf文件的位置有关。您可以运行“karma start--log level debug”查看它在哪里查找文件。可能是您的文件路径应该是“../www/…”而不是“www/…”,因为这些路径将根据您执行脚本的位置进行解释。请参阅@AndyHasIt,她将她的unit-tests.conf.js放在项目根目录下的“tests”目录中。这就是为什么她需要以“../”开头的“www”跳出测试目录的原因。我在目录的根目录下有unit-tests.conf.js。我这样做是为了使在我的应用程序的组件子目录中编写单元测试变得容易。我检查了,无论从哪里运行,都与conf文件的位置有关。您可以运行“karma start--日志级调试”,查看它在哪里查找文件。