Карма перезапускает тесты на новых розетках - PullRequest
0 голосов
/ 05 декабря 2018

Я столкнулся с проблемой, когда Karma перезапускает модульные тесты во время выполнения одного из них, а затем вызывает сбой вновь созданных тестов.Модульный тест, вызывающий такое поведение, вызывает функцию, которая вызывает перенаправление, которое, как я полагаю, вызывает эту проблему.

Модульный тест:

it('should set the persona cookie', () => {
    spyOn(scope, 'setPersona').and.callThrough();
    window.onbeforeunload = jasmine.createSpy();

    expect(cookies.get('selectedPersona')).toBeUndefined();

    let persona = 'generalist';
    scope.setPersona(persona);

    expect(scope.setPersona).toHaveBeenCalledWith(persona);
    expect(cookies.get('selectedPersona')).toEqual(persona);
});

Функция $ scope.setPersona:

$scope.setPersona = function(persona) {
    $cookies.put('selectedPersona', persona);
    window.location.href = '/';
};

Чтобы остановить перенаправление, я добавил шпиона на window.onbeforeunload, как предлагается здесь: Некоторые из ваших тестов сделали полную перезагрузку страницы - ошибка при запуске тестов Жасмин

Проблема, которую я вижу, заключается в том, что половину времени тесты проходят без проблем.Другая половина, кажется, тесты перезапускаются под новыми сокетами и затем терпят неудачу.В логах вижу:

05 12 2018 15:21:59.584:INFO [HeadlessChrome 0.0.0 (Mac OS X 10.14.0)]: Connected on socket 33-J-PvXW-lWTk9HAAAB with id manual-8203
05 12 2018 15:21:59.691:INFO [HeadlessChrome 0.0.0 (Mac OS X 10.14.0)]: Connected on socket hSUTsLJb6MbnKqVoAAAC with id manual-1003
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...