3

だから私のテストはそれが見つからないと不平を言っていますui.bootstrap

INFO [karma]: Karma v0.10.2 server started at http://localhost:8080/
INFO [launcher]: Starting browser Chrome
WARN [watcher]: Pattern "/home/xenoterracide/lm/frontend/test/mock/**/*.js" does not match any file.
INFO [Chrome 30.0.1599 (Linux)]: Connected on socket 15lSt3HPpk9b-rKPvQzY
Chrome 30.0.1599 (Linux) Controller: Week should attach days of the week to scope FAILED
    Error: No module: ui.bootstrap
        at Error (<anonymous>)
        at /home/xenoterracide/lm/frontend/app/bower_components/angular/angular.js:1211:17
        at ensure (/home/xenoterracide/lm/frontend/app/bower_components/angular/angular.js:1152:38)
        at module (/home/xenoterracide/lm/frontend/app/bower_components/angular/angular.js:1209:14)
        at /home/xenoterracide/lm/frontend/app/bower_components/angular/angular.js:2904:24
        at Array.forEach (native)
        at forEach (/home/xenoterracide/lm/frontend/app/bower_components/angular/angular.js:130:11)
        at loadModules (/home/xenoterracide/lm/frontend/app/bower_components/angular/angular.js:2900:5)
        at /home/xenoterracide/lm/frontend/app/bower_components/angular/angular.js:2905:38
        at Array.forEach (native)
    TypeError: Cannot read property 'days_of_the_week' of undefined
        at null.<anonymous> (/home/xenoterracide/lm/frontend/test/spec/controllers/week.js:20:17)
Chrome 30.0.1599 (Linux): Executed 1 of 1 (1 FAILED) ERROR (0.126 secs / 0.017 secs)
Warning: Task "karma:unit" failed. Use --force to continue.

Aborted due to warnings.

Elapsed time
concurrent:test  1s

app.jsこれが私のロード場所ですui.bootstrap

'use strict';

angular.module('lmApp', [
    'ui.bootstrap',
    'ui.router'
])
.config(['$stateProvider', '$urlRouterProvider',
    function ( $stateProvider, $urlRouterProvider ) {
            $urlRouterProvider.otherwise('/')
            $stateProvider.state('index', {
                    url: "", // root
                    views: {
                            "Nav":        { templateUrl: "views/nav.html" },
                            "Week":       { templateUrl: "views/week.html" },
                    },
            })
    }
])
.factory('now', function () { return new Date })
;

これが私のテストです

'use strict';

describe('Controller: Week', function () {

  // load the controller's module
  beforeEach(module('lmApp'));

  var MainCtrl,
    scope;

  // Initialize the controller and a mock scope
  beforeEach(inject(function ($controller, $rootScope) {
    scope = $rootScope.$new();
    MainCtrl = $controller('Week', {
      $scope: scope
    });
  }));

  it('should attach days of the week to scope', function () {
    expect(scope.days_of_the_week.length).toBe(7);
  });
});
4

1 に答える 1

9

問題は、次のようにエラー ログに記載されています。

Error: No module: ui.bootstrap

それに基づいて、Karma 構成ファイル (通常は と呼ばれるkarma.conf.js) でステップが欠落していると推測します。テストを実行する前に Karma がそれらをメモリにロードすることを認識できるように、アプリに必要なすべてのライブラリを構成で提供する必要があります。を呼び出すとbeforeEach(module('lmApp'));、Karma はlmAppモジュールを作成しようとしますが、宣言された依存関係の 1 つ (または複数) が利用できないためできません。

カルマ構成ui.bootstrapの一部にのソース コードを含めるだけで、動作を開始するはずであると 99% 確信しています。files: {}

詳細については、こちらのカルマ ドキュメントを参照してください。

于 2013-10-16T20:30:14.197 に答える