18

Javascript コードのテストをいくつか書いていますが、エラーが発生したときにコンパイル プロセス中にいくつかのメッセージをダンプする必要があります。

System.out.println()JavascriptのJavaに相当するものはありますか?

PS : テストの実装中にデバッグ ステートメントをダンプする必要もあります。

アップデート

すべてのマージされたテストを含むファイルで maven プラグインを使用しています。

        <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>

アップデートⅡ

試してみconsole.log("...")ましたが、次のようになります:

js: "src/main/webapp/html/js/concat/tests_all.js", line 147:
uncaught JavaScript runtime exception: ReferenceError: "console" is not defined

私がテストしているコードは、(ライブラリのような) 関数のセットです。QUnitを使用しています。

4

8 に答える 8

29

基本的console.log("Put a message here.")に、ブラウザにサポートコンソールがある場合。

もう1つの典型的なデバッグ方法は、アラートを使用することです。alert("Put a message here.")

RE:アップデートII

これは理にかなっているようです。QUnitテストを自動化しようとしています。QUnitで読んだことから、これはブラウザー内の単体テストスイート/ライブラリです。QUnitはブラウザーで実行されることを想定しているため、ブラウザーが呼び出しているすべてのJavaScript関数を認識することを想定しています。

Mavenの構成に基づくと、コマンドライン/ターミナルでRhinoを使用してJavascriptを実行しているようです。これはブラウザの詳細をテストするためには機能しません。おそらくこれについてはSeleniumを調べる必要があります。ブラウザでJavaScriptをテストする必要はなく、コマンドラインレベルでのみJavaScriptをテストしている場合(理由はわかりませんが)、Rhinoはprint()式を評価して出力する方法を認識しているようです。このドキュメントをチェックしてください。

これらのリンクはあなたにとって興味深いかもしれません。

QUnitと自動テスト

QUnitを使用したJavaScriptユニットテスト

于 2012-01-04T20:01:04.860 に答える
4

私は解決策を見つけました:

print("My message here");
于 2012-01-04T20:21:45.530 に答える
4

私は Chrome を使用しており、print()は文字通り紙にテキストを印刷します。これは私のために働くものです:

document.write("My message");
于 2013-09-23T07:19:55.967 に答える
2

console.log()

Chrome、Safari、およびIE 8以降には、(より多くの開発ツールセットの一部として)コンソールが組み込まれています。Firefoxを使用している場合は、getfirebug.comを使用してください。

于 2012-01-04T20:00:49.973 に答える
0

関数内のどこにでもalert()プロンプトをいつでも追加できます。関数が呼び出されたかどうか、関数が完了したかどうか、または関数がどこで失敗したかを知るのに特に役立ちます。

alert('start of function x');
alert('end of function y');
alert('about to call function a');
alert('returned from function b');

あなたはその考えを理解します。

于 2012-01-04T20:18:43.370 に答える
0

Firefox の Firebug や Safari の開発者ツールなど、ブラウザで何らかの「開発者」ツールを使用している場合を除き、少なくとも 1 つはありません。その後、通常は使用できますconsole.log

たとえば、iOS デバイスで何かをしている場合は、 を追加し<div id="debug" />てからログインすることがあります。

于 2012-01-04T20:02:34.933 に答える
0

私も同じ質問をしようとしています。しかし、以下の codeacademy.com から学んだことから、出力またはテキストを表示するのに十分なコードはありますか?

print("hello world")  
于 2012-01-05T21:51:36.363 に答える