J'écris quelques tests pour le code Javascript et j'ai besoin de vider certains messages pendant le processus de compilation lorsque des erreurs sont rencontrées.
Existe-t-il un équivalent de la System.out.println()
de Java en Javascript?
P.S.: J'ai également besoin de vider les instructions de débogage lors de l'implémentation des tests.
MISE À JOUR
J'utilise un plugin maven sur un fichier contenant tous les tests fusionnés:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>Java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>org.mozilla.javascript.tools.Shell.Main</mainClass>
<arguments>
<argument>-opt</argument>
<argument>-1</argument>
<argument>${basedir}/src/main/webapp/html/js/test/test.js</argument>
</arguments>
</configuration>
</plugin>
MISE À JOUR II
J'ai essayé console.log("...")
, mais j'obtiens:
js: "src/main/webapp/html/js/concat/tests_all.js", line 147:
uncaught JavaScript runtime exception: ReferenceError: "console" is not defined
Le code que je teste est un ensemble de fonctions (comme dans une bibliothèque). J'utilise QUnit.
Essentiellement console.log("Put a message here.")
si le navigateur a une console de support.
Une autre méthode de débogage typique utilise des alertes, alert("Put a message here.")
RE: mise à jour II
Cela semble logique, vous essayez d'automatiser les tests QUnit, d'après ce que j'ai lu sur QUnit, il s'agit d'une suite/bibliothèque de tests unitaires dans le navigateur. QUnit s'attend à s'exécuter dans un navigateur et s'attend donc à ce que le navigateur reconnaisse toutes les fonctions JavaScript que vous appelez.
Sur la base de votre configuration Maven, il semble que vous utilisez Rhino pour exécuter votre Javascript sur la ligne de commande/le terminal. Cela ne fonctionnera pas pour tester les spécificités du navigateur, vous devrez probablement vous pencher sur Selenium pour cela. Si vous ne vous souciez pas de tester votre JavaScript dans un navigateur mais que vous testez uniquement JavaScript au niveau de la ligne de commande (pour une raison que je ne connais pas), il semble que Rhino reconnaisse une fonction print()
méthode pour évaluer les expressions et les imprimer. Commander cette documentation .
Ces liens pourraient vous intéresser.
J'ai trouvé une solution:
print("My message here");
J'utilise Chrome et print () imprime littéralement le texte sur papier. Voici ce qui fonctionne pour moi:
document.write("My message");
Chrome, Safari et IE 8+ sont livrés avec des consoles intégrées (dans le cadre d'un ensemble plus large d'outils de développement). Si vous utilisez Firefox, getfirebug.com .
Je suis également sur le point de poser la même question. Mais d'après ce que j'ai appris de codeacademy.com ci-dessous, le code suffit-il pour afficher la sortie ou le texte?
print("hello world")
Il n'y en a pas, du moins, sauf si vous utilisez un outil "développeur" quelconque dans votre navigateur, par exemple Firebug dans Firefox ou les outils de développement dans Safari. Ensuite, vous pouvez généralement utiliser console.log
.
Si je fais quelque chose dans, disons, un appareil iOS, je peux ajouter un <div id="debug" />
, puis connectez-vous.
En Java System.out.println()
imprime quelque chose sur la console. En javascript, la même chose peut être obtenue en utilisant console.log()
.
Vous devez afficher la console du navigateur en appuyant sur F12
clé qui ouvre l'outil de développement, puis passez à l'onglet console
.
Vous pouvez toujours simplement ajouter une invite alert () n'importe où dans une fonction. Particulièrement utile pour savoir si une fonction a été appelée, si une fonction s'est terminée ou si une fonction a échoué.
alert('start of function x');
alert('end of function y');
alert('about to call function a');
alert('returned from function b');
Vous avez eu l'idée.