2016-10-31 2 views
0

Я проверяю угловую директиву с угловым и жасмином. Отказывание HTTP-бэкэнда прекрасно работает, и все тесты работают нормально локально. Но на сервере сборки я получаю:Ошибка теста Jasmine на сервере сборки Jenkins с угловыми вычислениями?

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

Можете ли вы показать код $ httpBackend, который вы используете, чтобы издеваться над файлом 'app/auth/views/login.html'? – TwitchBronBron

+0

Не могли бы вы также показать код для своей директивы? – TwitchBronBron

+0

Где находится «http: //localhost/app/auth/views/login.html», на который ссылаются ваши предоставленные образцы. Как вы включаете 'login.html' в своем приложении? Не могли бы вы поделиться кодом, который включает этот файл? – TwitchBronBron

ответ

1

UI-Router пытается загрузить файл app/auth/views/login.html во время запуска вашего приложения.

Если вы запускаете тесты Jasmine локально, у вас уже есть настройка веб-сервера по адресу http://localhost, поэтому запрос для 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

Также , вот вопрос github, который более подробно описывает, как с этим бороться: https://github.com/angular-ui/ui-router/issues/212

Смежные вопросы