2017-02-07 20 views
0

В проекте, который я работаю, используется Pusher, а также Karma для модульных испытаний. Тесты блок в настоящее время не удается, ссылаясь на следующее сообщение об ошибке:Разбивка модулей с использованием AngularJS, Pusher + Karma

ReferenceError: Can't find variable: Pusher 
    at runBlock (/vagrant/front/src/app/index.run.js:9) 
    at invoke (/vagrant/front/bower_components/angular/angular.js:4771) 
    at /vagrant/front/bower_components/angular/angular.js:4578 
    at forEach (/vagrant/front/bower_components/angular/angular.js:325) 
    at createInjector (/vagrant/front/bower_components/angular/angular.js:4578) 
    at WorkFn (/vagrant/front/bower_components/angular-mocks/angular-mocks.js:3120) 

Так что я посмотрел в index.run.js и нашел вопрос:

/** @ngInject */ 
    function runBlock($log,$rootScope) { 

    $rootScope.wf = { 
     api: '/api/v1', 
     dateFormat: 'dd.MM.yyyy', 
     dataRefreshListeners:{} 
    }; 


    $rootScope.wf.pusher = new Pusher('3e2d8ab440fad96e67ff', { 
     cluster: 'eu', 
     encrypted: true 
    }); 

    } 

Я думал, что это будет простой случай определения Pusher, либо в параметры функции или заглушить его для тестов Unit.

Я нашел библиотеку pusher-test-stub и добавил ее. Это исправлены все мои предыдущие ошибки, но оставил мне этот:

PhantomJS 1.9.8 (Linux 0.0.0) ERROR 
    TypeError: 'undefined' is not an object (evaluating 'PusherDefinition.Util') 
    at /vagrant/front/bower_components/pusher-test-stub/dist/pusher-test-stub.js:155 


[08:51:49] 'test' errored after 3.39 s 
[08:51:49] Error: Failed 1 tests. 

я начать возиться с файлом pusher-test-stub.js, но полагал, что этот вопрос не будет с этой библиотекой.

Я также просмотрел файл karma.conf.js, обратив внимание на пути к каталогам. Изменение этих значений не изменило сообщение об ошибке с ошибкой об ошибке в обоих случаях (с pusher-test-stub.js и без).

ответ

0

PhantomJS 1.9.8 в настоящее время очень старый (2+ года) и, вероятно, сломается при работе с современными веб-приложениями.

Вы должны попробовать 2.5 беты, который показывает недавний Webkit двигатель: PhantomJS downloads

+0

спасибо за ответ, обновленный phantomjs в package.json и бегали НУЮ установку - никакой разницы. Я также добавил, что модульные тесты работали ранее. – dyatesupnorth

+1

Версия пакета npm phantomjs не совпадает с версией самого двоичного файла phantomjs. Какая версия сейчас? 'phantomjs --version' – Vaviloff

+1

Возможно, версия PhantomJS не несет ответственности за ошибку, но вам, как правило, лучше с более новой версией этого программного обеспечения. – Vaviloff

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

  • Нет связанных вопросов^_^