HTML5アプリケーションでのJavaScriptのデバッグとテスト

HTML5アプリケーションは、通常はHTML、CSSおよびJavaScriptを結合して、ブラウザで稼働し、スマートフォン、タブレット、ラップトップなどの各種デバイスに表示されるアプリケーションを作成します。このドキュメントでは、IDEでJavaScriptファイルをデバッグおよびテストするのに役立つツールをIDEが提供する方法を示します。

HTML5アプリケーションでJavaScriptファイルをデバッグする場合は、ChromeブラウザのNetBeans Connector拡張機能をインストールすることをお薦めします。ブラウザでアプリケーションを実行し、拡張機能がインストールされている場合は、デバッグが自動的に有効になります。

IDEにより、JavaScriptファイルでJasmineテスト・フレームワーク、KarmaまたはJSテスト・ドライバ・テスト・ランナーを使用した単体テストを簡単に構成および実行することもできます。様々なブラウザに対して単体テストを実行するようにテスト・ランナーを構成し、テストの実行時にIDEでロードするJavaScriptライブラリ、スクリプトおよびテストをすばやく指定できます。テストに失敗した場合は、デバッガを使用して、問題のあるコードを特定できます。

Chromeブラウザ用のNetBeans Connector拡張機能のインストール方法の詳細は、チュートリアルHTML5アプリケーションの開始を参照してください。

IDEでのJavaScriptの編集機能の詳細は、NetBeans IDEによるアプリケーションの開発ユーザーズ・ガイドJavaScriptファイルの作成を参照してください。

チュートリアルのスクリーンショットを確認するには、HTML5アプリケーションでのJavaScriptのテストとデバッグのビデオを参照してください。

目次

このページの内容は、NetBeans IDE 8.0に適用されます

このチュートリアルを完了するには、次のリソースが必要です。

ソフトウェアまたはリソース 必須バージョン
NetBeans IDE、Java 8.0
Java Development Kit (JDK) 7または8
Chromeブラウザ --
ChromeのNetBeans Connector拡張機能 1.x
JSテスト・ドライバJAR --

注意:

  • このドキュメントでは、JSテスト・ドライバ・サーバーを使用してJavaScript単体テストを実行します。JSテスト・ドライバ・プロジェクト・ホームでサーバーのプロパティに精通する必要があります。
  • このドキュメントは、HTML、CSSおよびJavaScriptについて基本的な知識またはプログラミング経験を持つ読者を想定して書かれています。

HTML5サンプル・アプリケーションの作成

次の手順を実行して、サイト・テンプレートからHTML5サンプル・アプリケーションを作成します。

  1. メイン・メニューで「ファイル」→「新規プロジェクト」([Ctrl]-[Shift]-[N]、Macの場合は[⌘]-[Shift]-[N])を選択して新規プロジェクト・ウィザードを開きます。
  2. 新規プロジェクト・ウィザードで「サンプル」ノードを展開し、「HTML5」カテゴリを選択します。
  3. 「AngularJSの端末カタログ・チュートリアル」プロジェクトを選択します。「次」をクリックします。
    新規ファイル・ウィザードのサンプル・プロジェクトのスクリーンショット
  4. プロジェクトの場所を指定します。「終了」をクリックします。

    注意:テンプレートのURLはgithubです。IDEはネットワークにアクセスしてテンプレート・アーカイブを取得できる必要があります。アーカイブのダウンロードで問題が発生した場合は、「オプション」ウィンドウでプロキシ設定を確認します。

    「終了」をクリックすると、IDEによりプロジェクトが作成され、エディタにindex.htmlファイルが開かれます。「プロジェクト」ウィンドウで、プロジェクトにindex.html、各種CSSスタイル・シート、JavaScriptファイルおよびライブラリが含まれていることを確認できます。

    「プロジェクト」ウィンドウのプロジェクト・ノードのスクリーンショット

    プロジェクトには、デフォルトで生成された複数のJavaScript単体テストおよび構成ファイルも含まれます。

  5. NetBeans Connector付きChromeがツールバーのドロップダウン・リストで選択されていることを確認します。
    ツールバーのドロップダウン・リストのスクリーンショット
  6. ツールバーで「実行」ボタンをクリックするか(F6)、「プロジェクト」ウィンドウでプロジェクト・ノードを右クリックして「実行」を選択します。

プロジェクトを実行すると、HTML5アプリケーションのフロント・ページがChromeブラウザに開き、携帯端末のリストが表示されます。携帯端末の名前をクリックすると、ページに端末の詳細が表示されます。

ブラウザ・ウィンドウのアプリケーションのスクリーンショット

NetBeans Connectorがタブをデバッグしていることを示す黄色いバーがブラウザ・タブに表示されます。黄色いバーが表示されているときは、IDEとブラウザが接続され、相互に通信できます。IDEからHTML5アプリケーションを起動すると、JavaScriptデバッガが自動的に有効になります。ファイルに変更を保存するかCSSスタイル・シートに変更を加えた場合は、ブラウザ・ウィンドウが自動的に更新されて変更が表示されるため、ページを再ロードする必要はありません。

黄色いバーを閉じるか「取消」をクリックした場合は、IDEとブラウザ間の接続が切断されます。接続を切断した場合、JavaScriptデバッガを使用するにはIDEからHTML5アプリケーションを再度実行する必要があります。

また、NetBeansアイコンがブラウザのURLの場所フィールドに表示されます。アイコンをクリックして、ブラウザの表示サイズの変更および「NetBeansでの検査」モードの有効化を行う各種オプションを提供するメニューを開くことができます。

JavaScriptデバッガの使用

この課題では、JavaScriptファイルにブレークポイントを配置し、アプリケーションを実行します。エディタのツールチップを使用して、変数の値をすばやく参照できます。

  1. 「プロジェクト」ウィンドウで「js」ノードを展開して「controllers.js」をダブルクリックし、エディタでそのファイルを開きます。
  2. 左マージンをクリックして、controllers.jsの行16に行ブレークポイントを配置します。
    エディタで設定されたブレークポイントのスクリーンショット

    「ウィンドウ」→「デバッグ」→「ブレークポイント」を選択して「ブレークポイント」ウィンドウを開き、プロジェクトで設定したブレークポイントを表示できます。

    「ブレークポイント」ウィンドウのブレークポイントのスクリーンショット
  3. ツールバーの「実行」ボタンをクリックして、プロジェクトを再度実行します。

    プロジェクトを実行すると、設定したブレークポイントがヒットしないため同じページが表示されます。

  4. ブラウザで、ページのMotorola Atrix4Gなどのエントリの1つをクリックします。

    データはJavaScriptに渡されておらず、レンダリングされていないため、ページは部分的にロードされ、端末のデータはないことがわかります

    ブラウザの詳細ページのスクリーンショット
  5. IDEのエディタで、ブレークポイントがヒットし、プログラム・カウンタが現在controllers.jsの行16にあることを確認できます。
  6. phone変数の上にカーソルを移動し、変数に関するツールチップ情報を表示します。
    エディタの変数ツールチップのスクリーンショット

    ツールチップに、phone = (Resource) Resourceという情報が表示されます。

  7. ツールチップをクリックしてツールチップを展開し、変数と値のリストを表示します。
    エディタの展開された変数ツールチップのスクリーンショット

    たとえば、「android」ノードを展開すると、文字列osおよびuiの値が表示されます。

    「ウィンドウ」→「デバッグ」→「変数」を選択して、「変数」ウィンドウにリストを表示することもできます。

  8. ツールバーの手順ボタンを使用して、angular.jsライブラリでJavaScript関数をステップ実行するか、「続行」ボタン(F5)をクリックしてアプリケーションを再開します。

JS単体テストの実行

KarmaまたはJSテスト・ドライバのテスト・ランナーを使用して単体テストを実行するように、IDEを容易に構成できます。KarmaおよびJSテスト・ドライバは、JavaScript単体テストを実行するターゲットであるURLを提供するテスト・ランナーです。

このチュートリアルでは、Karmaを使用して、サンプル・プロジェクトに含まれるJavaScript単体テストを実行します。サンプル・プロジェクトには、Karma構成ファイルがすでに含まれています。テストを実行すると、テスト・ランナー・サーバーが起動し、テストの実行を待機します。ブラウザが開き、ウィンドウにサーバーが稼働および待機中であることを示すステータス・メッセージが表示されます。

Karmaを使用してテストを実行する方法

Karmaを使用してテストを実行するには、まずKarmaをローカル・ファイル・システムにダウンロードする必要があります。Karmaをインストールしたら、Karma構成ファイルを作成し、その後プロジェクト・プロパティ・ウィンドウでインストール・ファイルと構成ファイルの場所を指定する必要があります。

  1. Karmaをインストールします。

    Karmaをインストールする方法と場所を選択できます。Karmaを使用するようにプロジェクトを構成する場合は、インストールを後から指定します。Karma WebサイトにKarmaをインストールするオプションについての情報を検索できます。

  2. Karma構成ファイルを作成します。

    サンプル・アプリケーションにはKarma構成ファイルがすでに含まれているため、このチュートリアルでは、この手順はオプションです。新規ファイル・ウィザードの単体テスト・カテゴリでKarma構成ファイルを選択することで、スケルトンKarma構成ファイルを作成できます。

    新規ファイル・ウィザードの新規Karma構成ファイルのスクリーンショット

    コマンド・ラインでKarma initコマンドを実行することもできます。Karma initコマンドの使用の詳細は、Karmaドキュメントを参照してください。

  3. 「プロジェクト」ウィンドウで「構成ファイル」ノードを展開して「karma.conf.js」をダブルクリックし、エディタでファイルを開きます。サンプルには、2つのKarma構成ファイルが含まれます。

    Karma構成ファイルには、テストの実行時に含められたり除外されたりするファイルが含まれます。この構成でテストを実行するのに必要なKarmaプラグインも含まれます。

    エディタ内のKarma構成ファイルのスクリーンショット
  4. 「プロジェクト」ウィンドウでプロジェクト・ノードを右クリックし、ポップアップ・メニューで「プロパティ」を選択します。
  5. プロジェクト・プロパティ・ウィンドウの「カテゴリ」ペインで「JavaScriptテスト」カテゴリを選択します。
  6. 「テスト・プロバイダ」ドロップダウン・リストで「Karma」を選択します。「OK」をクリックします。
  7. プロジェクト・プロパティ・ウィンドウを再度開き、「カテゴリ」ペインの「JavaScriptテスト」カテゴリで「Karma」を選択します。
  8. Karmaインストールの場所を指定します。

    Karmaをプロジェクト・ディレクトリにインストールした場合は、「検索」をクリックするとIDEでインストールが検索されます。「参照」をクリックし、ローカルのKarmaインストールを手動で見つけることもできます。

  9. Karma構成ファイルの場所を指定します。「OK」をクリックします。

    このチュートリアルでは、「検索」をクリックするとIDEでデフォルトのKarma構成ファイルが検索されます。「参照」をクリックし、構成ファイルを手動で見つけることもできます。

    プロジェクト・プロパティ・ウィンドウ内の「Karma」カテゴリのスクリーンショット

    「OK」をクリックすると、「プロジェクト」ウィンドウの「プロジェクト」ノードの下に「Karma」ノードが表示されます。「Karma」ノードを右クリックしてKarmaサーバーを起動および停止し、ポップアップ・メニューで構成ファイルを設定します。

  10. 「プロジェクト」ウィンドウで「Karma」ノードを右クリックし、ポップアップ・メニューで「起動」を選択します。

    「起動」をクリックするとKarmaサーバーが起動し、サーバーのステータスを示すブラウザ・ウィンドウが開きます。

    Chromeブラウザ・ウィンドウでのKarmaサーバーのステータスのスクリーンショット

    「出力」ウィンドウで、サーバーのステータスを確認できます。不足するプラグインをインストールするよう求めるメッセージも表示されます。

    「サービス」ウィンドウの「jsTestドライバの構成」ノードのスクリーンショット

    注意:単体テストを実行するには、ブラウザ・ウィンドウが開き、Karmaサーバーが稼働している必要があります。

  11. 「Karma」ノードを右クリックして「構成を設定」>「karma.conf.js」の順に選択し、正しい構成ファイルが選択されていることを確認する必要があります。「サービス」ウィンドウの「jsTestドライバの構成」ノードのスクリーンショット
  12. プロジェクトで設定したブレークポイントを無効にします。

    「ブレークポイント」ウィンドウでブレークポイントのチェックボックスを選択解除することにより、ブレークポイントを無効にできます。

  13. 「プロジェクト」ウィンドウでプロジェクトのノードを右クリックし、「テスト」を選択します。

    「テスト」を選択すると、テスト・ランナーによってファイルで単体テストが実行されます。IDEにより「テスト結果」ウィンドウが開かれ、テストの結果が表示されます。

    「テスト結果」ウィンドウのスクリーンショット

JSテスト・ドライバを使用してテストを実行する方法

JSテスト・ドライバを使用する場合のために、IDEで「サービス」の「JSテスト・ドライバ」ノードから開くことのできるJSテスト・ドライバの構成ダイアログが提供されています。構成ダイアログでは、JSテスト・ドライバ・サーバーJARの場所およびテストの実行対象のブラウザを簡単に指定できます。「JSテスト・ドライバ」ノードでは、サーバーが稼働しているかどうかをすばやく確認し、サーバーを起動および停止できます。

JSテスト・ドライバ・サーバーの構成の詳細は、JsTestDriverの開始ドキュメントを参照してください。

  1. JSテスト・ドライバJARをダウンロードし、JARをローカル・システムに保存します。
  2. 「サービス」ウィンドウで、「JSテスト・ドライバ」ノードを右クリックし、「構成」を選択します。
    「サービス」ウィンドウの「jsTestドライバの構成」ノードのスクリーンショット
  3. 「構成」ダイアログ・ボックスで、「参照」をクリックし、ダウンロードしたJSテスト・ドライバJARを特定します。
  4. ブラウザに、NetBeans Connector付きChrome (NetBeans IDE 7.3では、NetBeans JS Debugger付きChrome)を選択します。「OK」をクリックします。
    「jsTestドライバの構成」ダイアログ・ボックスのスクリーンショット

    注意:JSテスト・ドライバを初めて構成する場合にのみ、JSテスト・ドライバJARの場所を指定する必要があります。

    キャプチャしてテストに使用できるブラウザのリストは、システムにインストールされているブラウザに基づきます。複数のブラウザをスレーブ・ブラウザとして選択できますが、テストを実行するには、サーバーのスレーブにできるウィンドウをブラウザごとに開く必要があります。選択したブラウザは、IDEからサーバーを起動すると自動的にキャプチャされます。

    NetBeans ConnectorのあるChromeを選択した場合、JSテスト・ドライバで実行されるテストをデバッグできます。

  5. 「プロジェクト」ウィンドウでプロジェクト・ノードを右クリックし、「新規」>「その他」を選択します。
  6. 「単体テスト」カテゴリで「jsTestDriver構成ファイル」を選択します。「次」をクリックします。
  7. jsTestDriverがファイル名であることを確認します。
  8. 「作成されるファイル」フィールドで、ファイルの場所がプロジェクト(AngularJSPhoneCat/config/jsTestDriver.conf)のconfigフォルダであることを確認します。

    注意:jsTestDriver.conf構成ファイルはプロジェクトのconfigフォルダにある必要があります。作成されるファイルの場所がconfigフォルダでない場合は、「参照」をクリックし、ダイアログ・ボックスで「AngularJSPhoneCat - Configuration Files」フォルダを選択します。

  9. Jasmineライブラリのダウンロードのチェックボックスが選択されていることを確認します。「終了」をクリックします。
    新規jsTestDriver構成ファイル・ウィザードのスクリーンショット

    注意: jsTestDriverを実行するにはJasmineライブラリをダウンロードする必要があります。IDEがJasmineライブラリをダウンロードできないことを通知された場合は、「オプション」ウィンドウでIDEのプロキシ設定を確認します。

    「終了」をクリックすると、IDEによりスケルトンjsTestDriver.conf構成ファイルが生成され、ファイルがエディタに開かれます。「プロジェクト」ウィンドウで、構成ファイルが「構成ファイル」ノードに作成されたことを確認できます。「単体テスト」ノードの「lib」フォルダを展開すると、Jasmineライブラリがプロジェクトに追加されたことを確認できます。

    「プロジェクト」ウィンドウの「単体テスト」フォルダのスクリーンショット

    エディタで、デフォルトで生成される構成ファイルの次のコンテンツを確認できます。

    server: http://localhost:42442
    
    load:
      - test/lib/jasmine/jasmine.js
      - test/lib/jasmine-jstd-adapter/JasmineAdapter.js
      - test/unit/*.js
    
    exclude:
    

    構成ファイルでは、テストの実行に使用されるローカル・サーバーのデフォルトの場所を指定します。ファイルには、ロードする必要のあるファイルもリストされます。デフォルトでは、リストには「unit」フォルダにあるJasmineライブラリおよびJavaScriptファイルが含まれます。テストは通常unitフォルダにありますが、リストを変更して、テストを実行するためにロードする必要のある他のファイルの場所を指定できます。単体テストを実行するには、テストするJavaScriptファイルとAngular JavaScriptライブラリの場所を、ロードするファイルのリストに追加する必要もあります。

    このチュートリアルでは、JSテスト・ドライバを使用してテストを実行する場合、次のファイル(太字)をロードされるファイルのリストに追加できます。

    load:
        - test/lib/jasmine/jasmine.js
        - test/lib/jasmine-jstd-adapter/JasmineAdapter.js
    
        - app/lib/angular/angular.js
        - app/lib/angular/angular-mocks.js
        - app/lib/angular/angular-route.js
        - app/lib/angular/angular-animate.js
        - app/lib/angular/angular-resource.js
        - app/js/*.js
    
        - test/unit/*.js
  10. 構成ファイルの更新後、「プロジェクト」ウィンドウで「プロジェクト」ノードを右クリックして、「テスト」を選択できます。

    「テスト」をクリックすると、IDEがChromeブラウザにJSテスト・ランナーを自動的に開き、「出力」ウィンドウに2つのタブを開きます。

    ブラウザ・ウィンドウで稼働しているjsTestDriverのスクリーンショット

    jsTestDriverサーバーの実行中は、Chromeブラウザ・ウィンドウにメッセージが表示されます。サーバーがlocalhost:42442で稼働していることを確認できます。「出力」ウィンドウのjs-test-driverサーバー・タブで、サーバーのステータスを確認できます。

    JsTestDriverがブラウザで実行され、NetBeans Connectorがタブをデバッグしていることに注意してください。JSテスト・ドライバを使用してテストを実行し、NetBeans ConnectorのあるChromeをターゲット・ブラウザの1つとして選択する場合は、単体テストをデバッグできます。

    「出力」ウィンドウのjs-test-driverサーバー・タブのスクリーンショット

    注意:単体テストを実行するには、ブラウザ・ウィンドウが開き、jsTestDriverサーバーが稼働している必要があります。「サービス」ウィンドウの「JSテスト・ドライバ」ノードを右クリックし、「起動」を選択して、サーバーを起動し、ウィンドウを開くことができます。

    「出力」ウィンドウの実行中のJS単体テスト・タブのスクリーンショット
  11. メイン・メニューの「ウィンドウ」→「出力」→「テスト結果」を選択して、「テスト結果」ウィンドウを開き、テストの結果を確認します。
    「テスト結果」ウィンドウのスクリーンショット

    ウィンドウの左マージンの緑のチェック・アイコンをクリックして、成功したテストの展開したリストを表示できます。

JSテスト・ドライバを使用したJS単体テストのデバッグ

この課題では、IDEおよびJSテスト・ドライバを使用して単体テストをデバッグする方法を示します。

注意:NetBeans IDE 8.0では、Karmaテスト・ランナーで実行されるデバッグ・テストはサポートされません。

  1. 「プロジェクト」ウィンドウで「js」フォルダを展開して「controllers.js」をダブルクリックし、エディタでそのファイルを開きます。
  2. ファイルの行7を修正して、次の変更(太字)を加えます。変更を保存します。
    function PhoneListCtrl($scope, Phone) {
      $scope.phones = Phone.query();
      $scope.orderProp = 'name';
    }

    変更を保存すると、ブラウザにページが自動的に再ロードされます。リスト内の端末の順序が変更されたことを確認できます。

  3. JSテスト・ドライバ・サーバーが稼動中で、ステータス・メッセージがChromeブラウザ・ウィンドウに表示されていることを確認します。
  4. 「プロジェクト」ウィンドウでプロジェクトのノードを右クリックし、「テスト」を選択します。
    「テスト結果」ウィンドウの失敗したテストのスクリーンショット

    テストを実行すると、期待される値"age"のかわりに値"name"が検出されたことを示すメッセージでテストの1つが失敗したことを確認できます。

  5. 「出力」ウィンドウの実行中のJS単体テスト・タブを開きます。
    「出力」ウィンドウの「実行中のJS単体テスト」タブの失敗したテストのスクリーンショット

    orderPropが行41にageを期待していることをメッセージで確認できます。

  6. 実行中のJS単体テスト・タブのリンクをクリックして、失敗したテストの行に移動します。テスト・ファイルcontrollersSpec.jsがエディタの行41 (太字)に開きます
    it('should set the default value of orderProp model', function() {
          expect(scope.orderProp).toBe('age');
        });

    テストではscopeOrder.propの値として"age"が期待されたことがわかります。

  7. テストが失敗した行(行41)にブレークポイントを設定します。
  8. 「プロジェクト」ウィンドウでプロジェクトのノードを右クリックし、「テスト」を選択します。

    テストを再度実行すると、プログラム・カウンタがブレークポイントにヒットします。カーソルをscopeOrder.prop上に移動すると、ブレークポイントにヒットしたときの変数の値が"name"であることをツールチップで確認できます。

    エディタ、「コードを評価」ウィンドウおよび「変数」ウィンドウを表示しているIDEのスクリーンショット

    または、メイン・メニューの「デバッグ」→「式の評価」を選択して、「コードを評価」ウィンドウを開くことができます。ウィンドウに式scopeOrder.propを入力し、「コード・フラグメントを評価(Ctrl+Enter)」ボタン(「式の評価」ボタン)をクリックすると、デバッガによって式の値が「変数」ウィンドウに表示されます。

  9. ツールバーの「続行」をクリックして、テストの実行を終了します。

サマリー

このチュートリアルでは、JavaScriptファイルのデバッグおよび単体テストの実行に役立つツールをIDEがどのように提供するかについて学習しました。Chromeブラウザでアプリケーションを実行し、NetBeans Connector拡張機能が有効になっている場合、HTML5アプリケーションに対してデバッグが自動的に有効になります。IDEにより、JavaScriptファイルでJasmineテスト・フレームワークおよびJSテスト・ドライバ・サーバーを使用した単体テストを簡単に構成および実行することもできます。



関連項目

IDEでのHTML5アプリケーションのサポートの詳細は、netbeans.orgで次のソースを参照してください。

JSテスト・ドライバを使用した単体テストの実行の詳細は、次のドキュメントを参照してください。

get support for the NetBeans

Support


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2015, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo