2017-01-28 2 views
4

Je rencontre des problèmes lors de l'exécution de tests de karma via Gulp.Phantomjs launcher Fatal Windows Exception rencontrée

J'utilise le plugin lance PhantomJS, et quand il tente de lancer, je vois ce qui suit:

[09:27:02] Starting 'karma-tests'... 
DEPRECATED: use your own version of lodash, this will go away in [email protected] 
DEPRECATED: use your own version of lodash, this will go away in [email protected] 
28 01 2017 09:27:04.817:INFO [karma]: Karma v1.4.0 server started at http://0.0.0.0:9876/ 
28 01 2017 09:27:04.817:INFO [launcher]: Launching browser PhantomJS with unlimited concurrency 
28 01 2017 09:27:04.817:INFO [launcher]: Starting browser PhantomJS 
28 01 2017 09:27:07.882:INFO [PhantomJS 2.1.1 (Windows 8 0.0.0)]: Connected on socket VwHY_WyYXMEj3RvZAAAA with id 284 
68634 
28 01 2017 09:27:08.436:ERROR [phantomjs.launcher]: Fatal Windows exception, code 0xc0000005. 
PhantomJS has crashed. Please read the bug reporting guide at 
<http://phantomjs.org/bug-reporting.html> and file a bug report. 

28 01 2017 09:27:08.471:ERROR [launcher]: PhantomJS crashed. 

28 01 2017 09:27:08.475:INFO [launcher]: Trying to start PhantomJS again (1/2). 
28 01 2017 09:27:10.457:WARN [PhantomJS 2.1.1 (Windows 8 0.0.0)]: Disconnected (1 times) 
PhantomJS 2.1.1 (Windows 8 0.0.0) ERROR 
    Disconnectedundefined 

[09:27:10] 'karma-tests' errored after 7.9 s 
[09:27:10] Error: 1 
    at formatError (C:\Users\asus\AppData\Roaming\npm\node_modules\gulp\bin\gulp.js:169:10) 
    at Gulp.<anonymous> (C:\Users\asus\AppData\Roaming\npm\node_modules\gulp\bin\gulp.js:195:15) 
    at emitOne (events.js:101:20) 
    at Gulp.emit (events.js:188:7) 
    at Gulp.Orchestrator._emitTaskDone (C:\Users\asus\Documents\Github\interACT\node_modules\orchestrator\index.js:264 
:8) 
    at C:\Users\asus\Documents\Github\interACT\node_modules\orchestrator\index.js:275:23 
    at finish (C:\Users\asus\Documents\Github\interACT\node_modules\orchestrator\lib\runTask.js:21:8) 
    at cb (C:\Users\asus\Documents\Github\interACT\node_modules\orchestrator\lib\runTask.js:29:3) 
    at removeAllListeners (C:\Users\asus\Documents\Github\interACT\node_modules\karma\lib\server.js:380:7) 
    at Server.<anonymous> (C:\Users\asus\Documents\Github\interACT\node_modules\karma\lib\server.js:391:9) 
    at Server.g (events.js:291:16) 
    at emitNone (events.js:91:20) 
    at Server.emit (events.js:185:7) 
    at emitCloseNT (net.js:1555:8) 
    at _combinedTickCallback (internal/process/next_tick.js:71:11) 
    at process._tickDomainCallback (internal/process/next_tick.js:122:9) 

J'utilise les dernières versions du karma et PhantomJS lance, avec les entrées suivantes dans mon paquet. JSON:

"karma": "^1.4.0", 
"karma-phantomjs-launcher": "^1.0.2" 

de plus, j'ai PhantomJS 2.1.1 installé au niveau mondial

la nature de l'erreur semble suggérer cela est Windows liée, je suis runn sur une plate-forme Windows 10 64 bits.

Le projet que je cours est en fait installé sur d'autres machines qui sont un mélange de Windows 7, Windows 10 et Linux. J'ai vu ce problème sur l'autre gagner 10 machines, le reste des plates-formes semble bien. Jusqu'à récemment (quelques semaines environ), je n'ai pas vu ce problème sur la victoire 10, donc je me demande si une sorte de mise à jour de Windows a causé un effet secondaire imprévu. J'ai fait par hasard changer le numéro de port dans mon fichier de configuration karma et il a réussi à exécuter les tests, mais sur un autre lancement, il a échoué à nouveau avec la même erreur. Changer le port n'a fait aucune différence.

Ma config karma se présente comme suit:

module.exports = function(config) { 
    config.set({ 
    logLevel : config.LOG_INFO, 
    colors: true, 
    browsers: ['PhantomJS'], 
    singleRun: true, 
    port: 9876, 
    autoWatch: false, 
    basePath: '../', 
    reporters: ['progress', 'coverage'], 

    coverageReporter: { 
     dir : 'test/coverage/', 
     reporters: [{ 
     type: 'lcovonly', 
     subdir: '.', 
     file: 'karma-coverage.dat' 
     }, { 
     type : 'json', 
     subdir: '.', 
     file : 'karma-results.json' 
     }] 
    }, 

    frameworks: ['jasmine'], 
    exclude: ['../dist/client/assets/scripts/angular_app.js'], 
    files: [ 
     'dist/client/assets/scripts/jquery.js', 
     'dist/client/assets/scripts/bootstrap.js', 
     'dist/client/assets/scripts/bower_libs.js', 
     'dist/client/assets/scripts/d3.min.js', 
     'dist/client/assets/scripts/main.js', 
     'test/mocks/mocks.config.js', 
     'test/mocks/**/*.mock.js', 
     'src/client/app/**/*.module.js', 
     'src/client/app/**/!(*spec).js', 
     'src/client/app/**/*.spec.js' 
    ], 

    preprocessors: { 
     'src/client/app/**/!(*spec).js': ['coverage'] 
    } 
    }); 
}; 

Quelqu'un at-il là-bas rencontré ce problème et si oui avez-vous réussi à trouver une solution? Faites-moi savoir si vous avez besoin de plus de détails.

Merci

Répondre

4

Je trouve une solution à la fin en utilisant la version bêta 2.5.0 qui peut être saisi de here et le remplacement de l'exe dans le dossier de la bibliothèque fantôme qui vient avec le module PhantomJS-construit.

Donc, pour moi, je devais rester ici:

PROJECT_ROOT\node_modules\phantomjs-prebuilt\lib\phantom\bin 

Cela a fait l'affaire, des exceptions plus fatales! Il ne semble pas que la version 2.5 sera bientôt disponible - https://github.com/ariya/phantomjs/milestones

À utiliser à vos risques et périls!

+0

Est-il impossible d'installer cette version via NPM? – danwellman

+1

Non, il n'est pas encore publié si vous regardez ce lien jalons que j'ai ajouté dans ma réponse, donc pour l'instant, vous devrez copier cet exe dans – mindparse