2013-05-21 110 views
3

我正在用Jasmine测试我的AngularJS应用程序,它正在通过规格。我试图与Karma一起运行测试,但它失败了。看来Karma无法看到Jasmine规范中定义的$范围,但Jasmine跑步者认为它很好。通过Karma测试AngularJS与茉莉花

我karma.conf.js:

frameworks = ['jasmine']; 
colors = true; 
singleRun = true; 
files = [ 
    JASMINE, 
    JASMINE_ADAPTER, 
    ANGULAR_SCENARIO, 
    ANGULAR_SCENARIO_ADAPTER, 
    'lib/jquery-1.9.1.min.js', 
    'lib/angular.min.js', 
    'lib/angular-mocks.js', 
    'lib/jquery.scrollTo.js', 
    'lib/jquery-ui.min.js', 
    'lib/calendar.js', 
    'lib/date.js', 
    'src/app.js', 
    'spec/*.spec.js' 
]; 
browsers = [ 
    'PhantomJS', 
    'Firefox' 
]; 

我test.spec.js:

describe('Application startup', function(){ 
    beforeEach(module('app')); 
    describe('MainCtrl', function(){ 
     var scope, ctrl; 
     beforeEach(inject(function($rootScope, $controller){ 
      scope = $rootScope.$new(); 
      ctrl = $controller('MainCtrl', { 
       $scope: scope 
      }); 
     })); 
     it("should initialize $scope.testLoad to 42", function(){ 
      expect(scope.testLoad).toBe(42); 
     }); 
}); 
}); 

输出我得到:

expect undefined toBe 42 

茉莉在流逝这没有问题,这显然是噶或我的配置文件。这是怎么回事?

+0

我删除了ANGULAR_SCENARIO和ANGULAR_SCENARIO_ADAPTER,现在运行良好。找到适当的文档。做出了错误的假设。 – andy

+2

这是因为ANGULAR_SCENARIO旨在用于e2e测试,并且这需要单元测试中使用的单独的karma.conf文件 –

+0

这些文档位于何处以将所有这些文件结合使用? – vcardillo

回答

1

我删除了ANGULAR_SCENARIO和ANGULAR_SCENARIO_ADAPTER,现在运行良好。找到适当的文档。做出了错误的假设。

感谢@ canotto90和@Tyler Eich的帮助和澄清。