PhantomJS + QUnit: Unable to access Network
Bonjour,
Description du contexte:
J'ai un projet web Maven utilisant du JSP, du JAVA (Spring MVC), et du Jquery.
J'ai implémenté des scripts de tests via QUnit.
Quand je lance ma page en local (via mvn jetty:run), je vois bien la console QUnit permettant de jouer mes scripts de tests.
Je peux les jouer et rejouer sans problème.
Mon but est maintenant de pouvoir les exécuter sans mon navigateur pour ensuite automatiser les tests dans Jenkins.
J'en suis actuellement à essayer d'exécuter en local des scripts de test QUnit avec PhantomJs.
Avec le POM de mon projet Maven je télécharge une instance de phantom JS dans un dossier phantomjs-1.9.7-windows/ qui est au même niveau que le dossier target/.
Le dossier phantomjs-1.9.7-windows/ contient par défaut un phantomjs.exe et un sous-dossier examples qui contient des scripts pour executer par exemples des scripts QUnit.
Depuis le dossier phantomjs-1.9.7-windows/ j'exécute dans une invite de commande la commande ci-dessous:
Code:
phantomjs.exe ./examples/run-qunit.js ../src/issue-stat-front/test/html/index_testing.html
Où index_testing.html est une page obtenue par sauvegarde (Ctrl + S) la page affichée dans mon navigateur.
Elle contient les références aux scripts de tests QUnit via des balises <script>.
Mais j'obtiens l'erreur suivante: Unable to access network.
Savez-vous quelle est la cause de l'erreur ? (Je viens de découvrir QUnit et PhantomJs donc il y a peut-être des points essentiels que je ne connais pas ;)).
L'un d'entre vous aurait-t-il un exemple pour exécuter des scripts QUnit avec Phantom JS et le passer ensuite sur Jenkins (ou autre outil de CI) ?
D'avance merci pour votre aide.
Solution trouvee = indiquer le proxy client
Bonjour,
L'erreur était due au fait qu'un proxy était en place chez le client.
Il faur spécifier l'URL du proxy dans la commande via l'option --proxy:
Code:
phantomjs.exe --proxy http://<LOGIN>:<PASSWORD>@<HOST>:<PORT> ./examples/run-qunit.js ../src/issue-stat-front/test/html/index_testing.html
avec <LOGIN>, <PASSWORD>, <HOST> et <PORT> respectivement les login, mot de passe, hôte et port utilisé pour le proxy.
Par ailleurs pour éviter d'avoir à sauvegarder une page html à la main.
J'intègre dans mon build maven le lancement et l'arrêt d'un serveur Jetty ainsi que l'execution de phantomjs bindé à la phase integration-test en lui passant l'URL de la page à tester.
Si jamais cela aide quelqu'un ;).
Christophe