2017-09-26 9 views
1

私はKarmaを使用してChromeブラウザでテストを実行しようとしています。 PhantomJSで問題なく実行していましたが、ChromeHeadlessに切り替えることを望んでいました。私は、テストがChromeまたはChromeHeadlessを通過していないことを発見しましたが、まだPhantomJSを使用しています。ChromeでKarma Chromeテストに失敗しましたが、PhantomJSで渡されました

私はconfigに含まれているファイルと関係があると信じています。私はPhantomJSが期待通りにそれらをロードしていると思うが、何らかの理由で、Chromeはそうではない。私はここで他の質問を見てきましたが、解決策は特に関連性がなく、残念ながらうまくいきませんでした。

これは、Chromeを使用して、私のテストを実行しようとしたとき、私は取得エラーです:

Uncaught TypeError: Cannot read property 'maps' of undefined

karma.conf.js内のファイルで宣言された取得する必要がありますwindow.google由来google.maps、を参照しています:

module.exports = function(config) { 
    config.set({ 
    // autoWatch: true, 
    browserConsoleLogOptions: { 
     terminal: true, 
     level: '' 
    }, 
    // Prevent timeout issues when running the tests 
    browserDisconnectTimeout: 10000, 
    browserDisconnectTolerance: 3, 
    browserNoActivityTimeout: 60000, 
    browsers: ['Chrome'], 
    captureTimeout: 2000, 
    // debug: true, 
    files: [ 
    'http://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js', 
     'http://maps.googleapis.com/maps/api/js?client=client_id', 
     { pattern: 'test-context.js', watched: false } 
    ], 
    frameworks: ['jasmine'], 
    // logLevel: config.LOG_DEBUG, 
    port: 9876, 
    preprocessors: { 
     'test-context.js': ['webpack'], 
    }, 
    reporters: ['progress', 'spec'], 
    singleRun: true, 
    webpack: require('./webpack/config.test'), 
    webpackServer: { 
     noInfo: true 
    }, 
    }); 
}; 

誰もが私が間違ってやってもよいし、なぜテストのためのChromeブラウザを実行すると、外部ファイルに引っ張っていないようです何を知っていますか?

私は、Googleマップオブジェクト全体を模倣する可能性がありますが、指定されたファイルに含まれているはずであるため、過度で不要です。

誰かがアイデアを持っている場合は、私はあなたの助けに感謝します。ありがとうございました!

答えて

0

私はついにそれを理解しました。 CORSの問題は、外部ファイルのロードを妨げていました。 karma.confファイルに次のコードを追加すると、私の問題が解決しました。

crossOriginAttribute: false, 
関連する問題