Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Firefox OS上でテストを実行する: 開発者向けガイド

Mozillaの自動化ハーネスチームは自動テストインフラストラクチャを拡張しFirefox OSに適合させるために特に (古いハーネスが特化していた) ブラウザではなく電話向けOSのテストを対象とした新しいハーネスを記述する努力をしました。Firefox OSのアーキテクチャはすべてこれらのテストハーネスを動作させ適用する予定です。しかしそれは開発者がテストを実行し、パッチが動作するか否かを見るのをとても複雑にします。この記事はMozillaで利用可能なすべてのテストリソースの意味を理解することをめざします .

導入

もしあなたがGecko開発者なら、すでに親しんでいるテスト自動化についてのFirefox OSに特化したドキュメントを見るべきでしょう: mochitestreftest、そしてxpcshell.

もしあなたがGaiaまたはアプリ開発者、あるいはOSの実際の動作をより深く "エンドユーザ" スタイルでテストすることに興味があるGecko開発者なら、Gaiaのテストスイートを見る必要があるでしょう。二つの重要なテストスイートがあります:

  • Gaia UIテスト:  これらのテストはPythonベースで作られており、デスクトップとデバイスの両方で実行できます。これらのテストはたとえば耐久力テスト (たくさんの連絡先を電話帳アプリに追加したり、繰り返しロックスクリーンアプリのロックを解除したり、たくさんのアラームをアラームアプリに設定したり、等)、機能性テスト (たとえば、FMラジオアプリで放送局を探したり、Cameraアプリで写真を撮ったり) やアクセシビリティテスト (たとえば、スクリーンリーダー機能をONにしたりOFFにしたり) のようにGaia UIの様々な側面をテストします。
  • Gaia総合テスト: これらのテストはJavaScriptベースで作られており、marionette-js-runnerを使っています。そしてこの記事を書いている時点ではB2Gデスクトップビルド上でのみ実行可能です (実機のサポートは間近です)。これらのテストは、Gaiaと他のアプリやサービスとの連携、たとえば、カレンダーアプリはCalDAVサーバーを追加することができるか、またはブラウザアプリはサーチエンジンと連携できるかなどの様々な側面をテストします。

実際には優先するツールチェインとあなたがやりたいと考えているテストに応じてどちらか一つを選んでください。

移動してこれらのテストが実行されているところを見てみましょう。

Gaia UIテストの実行

Gaia UIテストスイートは実機とB2Gデスクトップビルドで実行可能です。しかし我々はこのセクションでは可能な限り常に実機ではベストであるように実機での実行にチームを集中しています。

このテストは破壊的であることに注意してください。あなたはテストを実行する前に電話の各データをバックアップすべきです。どのテストを実行するかに応じて、それらは電話を掛けることができます。実行と電話のバックアップの仕方、SIMカードを取り除くなどについてとても注意深く行うことを意識してください。あなたがすでにエンジニアリングビルドを行っているならそれらを実行することは本当にたやすいでしょう。ここにあるように。

ワンタイムセットアップ

あなたはGaiaディレクトリの位置を変えないと仮定するならば、以下のステップを一度だけ実行する必要があります。Python virtualenvを作り (すでにインストールしていないならvirtualenvツールをインストールします)、アクティブにし、Gaia UIテストツールをvirtualenvにインストールします。以下のステップで仮想環境を作作って、あなたのGaiaリポジトリにあるGaia UIテストハーネスの実行を確認します (それらは何かをデバッグする場合に有用です)。

$ virtualenv gaia_ui_venv # This will create a gaia_ui_venv directory where the virtual environment lives. It can be anywhere on your system.
$ source gaia_ui_venv/bin/activate # This activates our virtualenv
(gaia_ui_venv)$ cd <b2groot>/gaia/tests/python/gaia-ui-tests;python setup.py develop # This installs the gaia ui harness into your virtual environment. 

もしGaia UIテストのためにすでに仮想環境を作っているなら、以下だけ行えばよいでしょう:

$ source gaia_ui_venv/bin/activate

テストの実行

最初にtestvarsファイルを作る必要があります。これをするには、一つ以上標準をコピーし、このテストは電話上のコンテンツをすべて破壊するかもしれないという警告が止める属性を加えます。前後で状態を変えないのはよいテストです。テストが行われる前に電話がバックアップされることを確認する必要があるでしょう。ここにある指示は仮想環境が起動され且つgaia/tests/python/gaia-ui-testsで行われることを仮定しています。

(gaia_ui_venv)$ cp gaiatest/testvars_template.json testvars.json
# testvars.jsonのコピーを編集して、JSONに次の属性を追加します:
"acknowledged_risks": true,
"skip_warning": true,

テストが実行される前にテストランナーがMarionetteのポートにアクセスでき、電話がUSBで接続されている必要があります。gaiatest/testsにあるテストを一つ選んで実行できます。 たとえば、電話帳のテストがしたいなら以下のようにします:

(gaia_ui_venv)$ adb forward tcp:2828 tcp:2828
(gaia_ui_venv)$ gaiatest --testvars=testvars.json --address=localhost:2828 gaiatest/tests/functional/contacts/

注意: UIテストが利用可能か調べるには、Gaiaリポジトリ内のgaiatestディレクトリを参照します。

Python virtualenvから抜けるためには、virtualenvの特殊コマンドdeactivateを使います:

(gaia_ui_venv)$ deactivate
$

注意: Gaia UIテストについてさらに詳細な情報を学びたいなら、Gaia UIテストのページに移動してください。

Gaia総合テストの実行

現在、Gaia総合テストを実行するにはB2G Desktopビルドを使わなくてはなりません (注釈: 近いうちにデバイス上でも利用可能になります)。ではその方法を見ていきましょう。

These just require a Gaia tree and NodeJS to be installed on your computer; the following command will do the rest:

$ cd gaia $ make test-integration 

That's it ? this instruction will download a B2G desktop build, and start running the tests in that build.

Note: To learn more about Gaia Integration Tests, read the Gaia Integration Tests Github repo.

Note: To find out what integration tests are available, look in the apps directory in the Gaia repo; integration tests can be found in test/marionette/ subfolders.

Wrapping Up

As always, work is underway to make all our tests easier to run both locally for developers as well as in our automation systems. Feel free to drop into the #ateam channel any time you have questions about test automation for Firefox OS or any of the Mozilla automation tools.

ドキュメントのタグと貢献者

 このページの貢献者: hamasaki, tsuyogoro, aoitan
 最終更新者: hamasaki,