2016-10-31 6 views
0

私はAngularとJasmineで角度指示をテストしています。 httpバックエンドを疑似的に動作させ、すべてのテストがローカルで正常に動作します。しかし、ビルドサーバー上で私が手:ジェンキンス・ビルド・サーバーでジャスミン・テスト・エラーが発生しましたか?

Error: Unexpected request: GET app/auth/views/login.html No more request expected (line 1419) [email protected]_components/angular-mocks/angular-mocks.js:1419:90 [email protected]/vendor.js:222:54 build/vendor.js:219:263 build/vendor.js:254:21 [email protected]/vendor.js:268:347 [email protected]/vendor.js:265:425

私のテスト・セットアップ:

beforeEach(angular.mock.module("app")); 

beforeEach(() => { 
    inject(function ($injector, _$compile_, _$rootScope_) { 
     // The injector unwraps the underscores (_) from around the parameter names when matching 
     $compile = _$compile_; 
     $rootScope = _$rootScope_; 
     $httpBackend = $injector.get("$httpBackend"); 
    }); 

$httpBackend.whenGET("api/langs/gb.json").respond({ "COMMON.HOME": homeName }); 
$httpBackend.whenGET("api/langs/de.json").respond({}); 

$httpBackend.whenGET("app/home/views/dashboard.html").respond(200, ""); 
$httpBackend.whenGET("app/home/views/login.html").respond(200, ""); 
$httpBackend.whenGET(/^private\/auth\?.*/).respond({}); 

directiveElem = getCompiledElement(); 
    }); 

ビルドサーバー上の別の何かです。私はこの行動を説明することはできません。

+0

'app/auth/views/login.html'ファイルをモックするために使用している$ httpBackendコードを表示できますか? – TwitchBronBron

+0

ディレクティブのコードも表示できますか? – TwitchBronBron

+0

提供されたサンプルで 'http://localhost/app/auth/views/login.html 'が参照されています。あなたのアプリに 'login.html'をどうやって入れていますか?そのファイルを含むコードを共有できますか? "/ログイン"、 ビュー:{ ルート:{ templateUrl – TwitchBronBron

答えて

1

UI起動時にUI-Routerがapp/auth/views/login.htmlファイルを読み込もうとしています。

ローカルでジャスミンテストを実行する場合は、すでにhttp://localhostのようなURLにWebサーバーを設定しているため、http://localhost/app/auth/views/login.htmlの要求により実際のファイルが返されます。あなたがビルドサーバー上でこのテストを実行すると、ビルド・サーバーはhttp://localhost/app/auth/views/login.html URLを処理するように構成されていないので、その問題を回避する方法を説明した記事ここでは404

を返すです。またUI-router interfers with $httpbackend unit test, angular js

https://github.com/angular-ui/ui-router/issues/212

関連する問題