Gaiaコードベースへの変更が完了して動作がOKと思われる時、次のステップは、プロジェクトに戻すパッチを投稿する前に、テストプロシージャを一通り通して、変更が本当に動作する —のと、Gaiaのその他の部分と一緒に正しく動作する— のを確認する事です。この記事では方法を説明します。
テストの手順は、一般にこんな構成です:
- 標準のデバッグ手順
- 自動テストを実行する
両方の領域を観察してみましょう。
標準デバッグを行う
熟練のweb開発者ならGaiaのコードをデバッグするのは慣れたプロセスでしょう。すでにデスクトッブ版FirefoxでGaiaを実行する方法や、簡単な変更を加える方法を見てきました。もっと複雑なコードベースの追加のためには、デスクトッブ版Firefoxのビューにてアクセスできる、Firefoxデバッグツールをもっと使いこなしたくなるでしょう。
記: これらのツールの詳細なマニュアルはTools zoneにあります。
自動テスト
パッチを投稿する前に、Gaiaにふさわしい標準テストスイートも実行しておくべきであり、そうすることで既存の主要な電話機能に逆行した変更をしていないことを確認します。 実行できるテストは:
- ユニットテスト
- 統合テスト
- パフォーマンステスト
- UI テスト
一般的にパッチの投稿前には、テスト実施を求めます; 最初の貢献の場合はテストなしに投稿できますが、将来にテストが実施されるように手助けを求める必要があります。テスト実行の前にはGaiaリポジトリを更新して、最新のものが手元にあるのを確認すべきです。
ショートカット: もしテスト環境の構築方法を知らない場合、MozITP を使用してください — このツールセットは自動で Ubuntu VMをセットアップし、インテグレーションテストを実施し UI のテストを実施するテスト環境をワンクリックで作成することが出来ます。
記: テストを動作させる方法については、Firefox OS の自動テスト のページで見つけることができます。
記: 利用可能であれば実機端末 (いくつかの機能 /ハードは、エミュレータではサポートしません) での各テストの実行を検討し、利用不可の場合はB2G デスクトッブエミュレータか、Firefoxナイトリーを使います。
ユニットテスト
ユニットテストは、大きなアプリケーション内の、個々のユニットのテスト — Gaiaの場合ぱ個々のアプリ—です。Gaiaで使用するのは:
- テストフレームワークとしてのmocha
- アサートライブラリのchai
- モック&スタブライブラリsinon.js
- テストカバレッジツールのblanket.js
下記コマンドでダウンロード、インストール、及び ユニットテストサーバの提供ができます(実行にかなりの時間がかかり、なのでお茶を入れる良い時間かもしれません):
DEBUG=1 make export FIREFOX=/Applications/FirefoxNightly.app/Contents/MacOS/firefox bin/gaia-test
ユニットテスト一覧のwebページが開くでしょう。実行するにす:
- ページ内の一覧から実行したいユニットテストを選択します (アスタリスクが横に出ています)。
- "Execute" ボタンをクリックします。
- ページ下端にスクロールして結果を見ます。
開いているウィンドウで、新規のターミナルウィンドウから全テストスイートを実行することもできます。:
make test-agent-test
記: これはかなり長い時間がかかります、なぜなら実行すべきテストが大量にあるためで(ひょっとして1時間以上)、ゆえにおそらくあなたが変更したアプリ向けのテストだけを実行したくなるでしょう。これを行うには APP=<app folder name>
をコマンドに追加します、例えば APP=settings
。
記: テストについてのより詳しい情報はGaia ユニットテスト を見て下さい。
統合テスト
統合テストには、異なるユニットのコードを一緒なグループにして、それらが一緒に正しく動作するかのテストを含んでおり、ユニットテストの次の論理的ステップです。Gaiaの統合テストは JavaScriptで書かれるmarionetteスクリプトと pythonベースのサーバで動かされます。これはGeckoと通信してブラウザと Firefox OS 端末の両方の制御と、お互いの相互作用が可能になります。
下記コマンドを実行して統合テストを起動できます:
make test-integration
記: ユニットテストと同様に、統合テストスイート全体の実施には時間がかかります、なので APP=<app folder name>
を上記のコマンドに追加してアプリ単体をテストできます、例えば APP=calendar
。
記: 統合テストのより詳細な情報は、Gaia 統合テストを読んでください。
パフォーマンステスト
Gaia のパフォーマンステストは、 外部の Raptor CLI ツール で実行されます。Raptor ではアプリを複数回起動することを自動化できて、アプリの起動時間についての統計情報を出力します。テスト実行後には、Raptor はアプリケーションについてのメモリ情報も出力します。
Raptor のパフォーマンステストを実行するには、次を見てください Raptor: Getting Started.
UIテスト
Gaia UI テスト入門を見て下さい。