2016-03-14 95 views
1

我有一個角度,我想測試我的控制器和服務與業力和茉莉花。我寫了一些測試,他們工作。然後我對我的角度項目做了一些大的改動。 現在我的測試都失敗了,我找不出原因。我在我的測試中評論了所有內容,只是想檢查是否加載了$controller服務。但即使這樣也行不通。當我嘗試注入服務時角度單元測試失敗

我的模塊定義:

angular.module('cManagement', [ 
    'angular-multi-select', 
    'ngCookies', 
    'ui.router', 
    'ui.bootstrap', 
    'pascalprecht.translate', 
    'ngIdle' 
]) 

這裏是我的測試:

use strict'; 
describe("cManagement", function() { 

beforeEach(module('cManagement')); 

it('should exist', inject(function($controller){ 
})); 
}); 

我噶配置:

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

     basePath : '', 
     reporters: ['progress', 'junit'], 
     files : [ 
      'node_modules/angular/angular.js', 
      'node_modules/angular-cookies/angular-cookies.js', 
      'node_modules/angular-multi-select/dist/angular-multi-select.js', 
      'node_modules/angular-ui-router/release/angular-ui-router.js', 
      'node_modules/angular-ui-bootstrap/dist/ui-bootstrap.js', 
      'node_modules/angular-translate/dist/angular-translate.js', 
      'node_modules/angular-mocks/angular-mocks.js', 
      'assets/plugins/angular-idle/angular-idle.js', 
      'app/app.module.js', 
      'app/components/login/*', 
      'app/**/*' 
     ], 

     singleRun : true, 

     frameworks: ['jasmine'], 

     browsers : ['PhantomJS'], 

     plugins : [ 
       'karma-jasmine', 
       'karma-junit-reporter', 
       'karma-phantomjs-launcher' 
       ], 

     junitReporter : { 
      outputDir: 'test_out', 
      userBrowserName: false 
     } 

    }); 
}; 

以下是錯誤我得到:

INFO [人緣]:噶v0.12.37服務器開始在 http://localhost:9876/ INFO [啓動]:啓動瀏覽器PhantomJS INFO [PhantomJS 2.1.1(Linux的0.0.0)]:連接在插座7iIMKn57rTEEJqjikf2o ID爲71013283個 PhantomJS 2.1。 1(Linux 0.0.0)c管理應存在失敗 /home/chris/IdeaProjects/campaignManagement/node_modules/angular/angular.js:4527:53 forEach @/home/chris/IdeaProjects/campaignManagement/node_modules/angular/angular。 js:321:24 [email protected]/home/chris/IdeaProjects/campaignManagement/node_modules/angular/angular.js:4487:12 [email protected]/home/chris/IdeaProjects/campaignManagement/node_modules/angular/angular.js:4409: 30 workFn @/home/chris/IdeaPro jects/campaignManagement/node_modules /角嘲笑/角mocks.js:2799:60個 PhantomJS 2.1.1(Linux的0.0.0):執行的2的2(1 FAILED)(0.006秒/ 0.007秒)

每一個提示是讚賞。

+0

你可以嘗試'inject'在單獨'beforeEach'塊?'beforeEach(inject(function($ controller){}));' – gmuraleekrishna

+0

也許只是一個打字錯誤,但是「嚴格使用」;「應該是「嚴格使用」。 – henrikmerlander

+0

而你在'use strict'附近有一個額外的勾號。 – gmuraleekrishna

回答

10

很可能你有一個依賴項問題 - 可能是一個無法加載的模塊 - 但是你無法確切知道哪一個,因爲PhantomJS有時會隱藏錯誤消息中的相關信息。

解決方案是將測試瀏覽器(暫時)更改爲Chrome或任何其他非無頭瀏覽器,以查看究竟出了什麼問題。

比如:你應該在噶配置或Gruntfile.js或什麼樣的變化有你:

browsers: ['PhantomJS'],

成類似:browsers: ['Chrome'],

,然後你應該能看到錯誤和糾正它。之後,您可以將其切換回PhantomJS。

注:只需將留給後人解決方法按@ snowe2010的評論(這個問題沒有答案,以便人們可以忽略溶液)