web-dev-qa-db-fra.com

uncaughtException après une course de Protractor

Après la mise à niveau vers Protractor 4.0.0 et l’adaptation de la configuration en raison des changements radicaux, nos tests sont enfin lancés.

Maintenant, le problème est qu’après un test, il échoue avec:

[09:52:22] E/launcher - "process.on('uncaughtException'" error, see launcher
[09:52:22] E/launcher - Process exited with error code 199

Comment déboguer ce problème et comprendre sa cause?


J'ai essayé d'exécuter Protractor en mode "dépannage":

$ protractor config/local.conf.js --troubleshoot

mais a obtenu exactement la même sortie sans détails sur l'erreur.

7
alecxe

Ceci est en train d'être corrigé et il devrait y avoir bientôt une solution miracle. La solution rapide (avant la publication du correctif logiciel) consiste à modifier le code dans votre node_modules ou à revenir à la version 3.3.0.

Modifier node_modules/protractor/built/launcher.js remplacer la uncaughtException à la ligne 168 par:

    process.on('uncaughtException', function (e) {
    var errorCode = exitCodes_1.ErrorHandler.parseError(e);
    if (errorCode) {
        var protractorError = e;
        exitCodes_1.ProtractorError.log(logger, errorCode, protractorError.message, protractorError.stack);
        process.exit(errorCode);
    }
    else {
        logger.error(e.message);
        logger.error(e.stack);
        process.exit(exitCodes_1.ProtractorError.CODE);
    }
});
11
cnishina

Passer au rapporteur 4.0.10 semble résoudre le problème.

Il y avait plusieurs correctifs de 4.0.0 à 4.0.10 dans le lanceur. Voir le journal des modifications: https://github.com/angular/protractor/blob/master/CHANGELOG.md

3
Elad Tabak

Solution pour modifier node_modules/protractor/built/launcher.js fonctionne.

Il se peut qu’une erreur se produise en indiquant "E/launcher - erreur inconnue: la version de Chrome doit être> = 53.0.2785.0" et il vous suffit de mettre à jour votre version de Chrome.

0
Li Rao

J'utilisais grunt-protractor-runner 4.0.0. J'essayais des fichiers de test spécifiques et j'ai reçu cette erreur après avoir constaté que j'avais accidentellement commenté tous les fichiers du tableau specs de mon rapporteur. conf.js fichier.

specs:
[
  //'test1-spec.js',
  //'test2-spec.js'
]

Espérons que cette erreur stupide aide quelqu'un.

0
Ben Beck

Vous ne savez toujours pas ce qui se passe et quel est le meilleur moyen de résoudre les problèmes de ce type, mais voici ce que j'ai fait pour le résoudre:

  • node_modules complètement supprimé
  • exécuté npm install (le rapporteur est répertorié en tant que ^4.0.0 dans package.json)
  • exécuté node_modules/.bin/webdriver-manager update

Et maintenant ça marche, ça ne lance plus la uncaughtException.


J'ai également supprimé le protractor-jasmine2-screenshot-reporter, mais je ne pense pas qu'il soit pertinent. 

De plus, nous utilisons grunt-protractor-runner pour exécuter les tests de Protractor à partir d’une tâche difficile et j’ai dû le bifurquer et mettre à jour la dépendance protractor en 4.0.0 .

0
alecxe