2

コードを共有するいくつかの異なるプロジェクトでクロージャ ライブラリを使用します。現在、プロジェクトの 1 つで AngularJS を開始しており、Karma ランナーを適切に機能させようとしています。

この投稿のアドバイスに従いましたが、完全に機能させることはできません。 クロージャ ライブラリで動作するように karma-runner (testacular とも呼ばれます) を構成する方法

goog.require('my.namespaced.file') に対して動作していますが、my/namespaced/file.js に goog.require('goog.dom') またはクロージャ ライブラリの何かがある場合、Karma ランナーはこれを吐き出します...

Starting Karma Server (http://karma-runner.github.io)
-------------------------------------------------------------------
INFO [karma]: Karma v0.9.2 server started at http://localhost:9876/
INFO [launcher]: Starting browser Chrome
NOT SERVED FILE undefined
INFO [Chrome 27.0 (Mac)]: Connected on socket id 3tRuxHEhooSb458fJnFt
ERROR [karma]: [TypeError: Cannot call method 'indexOf' of undefined]
TypeError: Cannot call method 'indexOf' of undefined
    at /usr/local/lib/node_modules/karma/lib/web-server.js:103:28
    at Array.map (native)
    at /usr/local/lib/node_modules/karma/lib/web-server.js:91:43
    at /usr/local/lib/node_modules/karma/lib/web-server.js:37:35
    at fs.js:266:14
    at Object.oncomplete (fs.js:107:15)

ここに私の karma.conf.js ファイルがあります

basePath = '../../../../';

// frameworks to use
frameworks = ['jasmine', 'closure'];

// list of files / patterns to load in the browser
files = [
 // closure base
 {pattern: 'closure-library/closure/goog/base.js', watched: false, included: true, served: true},
 {pattern: 'ne-js/src/main/js/ne-js.deps.js', watched: false, included: true, served: true},
 {pattern: 'angular-ne/src/main/js/angular-ne.deps.js', watched: false, included: true, served: true},
 {pattern: 'ne-webServices/src/main/js/ne-webServices.deps.js', watched: false, included: true, served: true},
 {pattern: 'directives/src/main/js/directives.deps.js', watched: false, included: true, served: true},
 {pattern: 'webapp/src/main/js/webapp.deps.js', watched: false, included: true, served: true},
 {pattern: 'webapp/src/test/lib/angular.js', watched: false, included: false, served: true},
 {pattern: 'webapp/src/test/lib/angular-mocks.js', watched: false, included: false, served: true},

 {pattern: 'webapp/src/main/js/**/*.js', watched: true, included: false, served: true},
 {pattern: 'webapp/src/test/js/**/*.js', watched: true, included: true, served: true},
];

preprocessors = {
 'webapp/src/test/js/**/*.js': ['closure', 'closure-iit'],
 'webapp/src/main/js/**/*.js': ['closure'],
};

autoWatch = true;
browsers = ['Chrome'];

// plugins to load
plugins = [
 'testacular-closure',
 'karma-jasmine',
 'karma-chrome-launcher',
 'karma-phantomjs-launcher',
];
4

1 に答える 1