2012-01-04 25 views
9

私はJavascriptコードのテストをいくつか書いており、エラーが発生したときにコンパイルプロセス中にいくつかのメッセージをダンプする必要があります。JavascriptのJavaのSystem.out.println()に相当するものは何ですか?

JavascriptにJavaのSystem.out.println()と同等のものはありますか?

P.S.:テストを実装する際にdebug文をダンプする必要もあります。

UPDATE

私はすべてのマージのテストを含むファイルに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> 

UPDATE II

私はconsole.log("...")を試してみましたが、私が手:

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

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

答えて

17

ブラウザにサポートコンソールがある場合は、基本的にconsole.log("Put a message here.")です。別の典型的なデバッグ方法は、アラートを使用している

alert("Put a message here.") RE

:私はQUnitで読んだもの、これがあるからアップデートこれは理にかなっているようだII

は、あなたが、QUnitのテストを自動化しようとしていますブラウザ単位のテストスイート/ライブラリ。 QUnITはブラウザで動作することを想定しているため、ブラウザは呼び出しているすべてのJavaScript関数を認識します。

Mavenの設定に基づいて、コマンドライン/ターミナルでJavascriptを実行するためにRhinoを使用しているようです。これはブラウザの仕様をテストするためには機能しませんが、これについてはSeleniumを調べる必要があります。 JavaScriptをブラウザでテストすることは気にしませんが、コマンドラインレベルでJavaScriptをテストしているだけなので、Rhinoは式を評価して印刷する方法をprint()と認識しています。チェックアウトthis documentation

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

QUnit and Automated Testing

JavaScript Unit Tests with QUnit

+2

ブラウザに 'console'がない場合は、(デバッグ用の)厄介なブラウザです。 –

+3

@Rocket私は同意します、うまくいけばそれらのほとんどはもはや存在しませんが、以前は間違いなく問題でした。さらにそれらの愚かなブラウザは、あなたが最もデバッグをしなければならなかったものでした! –

+2

デバッグツールを開いていない限りIEは 'console'オブジェクトを持っていないことが分かります。しかし、それはIEがばかだからです。 –

2

console.log()

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

+0

関連(たくさん):http://stackoverflow.com/search?q=javascript+console.log –

+0

私は提案された解決策を試してみましたが、それはうまくいきませんでした。私は私の質問を更新しました。 – JVerstry

0

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

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

+2

良い戦略、iOSデバイスにはコンソールがありますが、設定> Safari>詳細>デバッグコンソール –

+0

クールビーンズ@ChrisWagner、それはわかりませんでした! –

0

alert()プロンプトは、関数内の任意の場所に追加できます。関数が呼び出されたか、関数が完了したか、関数が失敗したかを知るのに特に便利です。

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

あなたのアイデアを得ます。

+0

はい、うまくいくかもしれませんが、コンパイルプロセスを複数回実行すると、各アラートを閉じる必要があります - >私にとって少し実用的ではありません... – JVerstry

+0

右 - 少し実用的ではないところがわかります。私はFireBugを少し使いました。あなたが探しているものがあるようです。http://getfirebug.com/logging – jamesTheProgrammer

3

私は解決策が見つかりました:私も同じ質問をしようと思い

print("My message here"); 
-1

を。しかし、codeacademy.comのコードから学んだことは、出力やテキストを表示するには十分ですか?

print("hello world") 
3

私は、文字通り、紙の上にテキストを印刷しChromeと印刷()を使用しています。これは私のためにどのような作品です:

document.write("My message"); 
関連する問題