2013-05-21 154 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的幫助和澄清。