株式会社クリアコード > フリーソフトウェア開発 > UxU - UnitTest.XUL > UxUをリモート操作する

UxUをリモート操作する

コマンドラインユーティリティの利用方法

UxUにはMozReplと同様のサーバ機能が含まれています。「ツール」メニューの「UnitTest.XUL」から「テストランナー」を選択してテストランナーを起動し、ウィンドウ左下の「サーバ」にチェックを入れて下さい。localhostの4444番ポートに接続すると、コマンドラインインターフェースやその他のアプリケーションからUxUをリモート操作することができます。

接続にはtelnetなどの既存のコマンドも利用できますが、UxUにはより便利なコマンドラインユーティリティがいくつか付属しています。以下では、これらのユーティリティを使ってコマンドラインからUxUを利用する方法を解説します。

なお、以下のユーティリティはすべてRubyによって実装されています。Windows環境ではActiveScriptRubyなどを事前にインストールしておいてください。

fire-test-runner - Firefoxテストランナー

fire-test-runnerは、ファイルまたはフォルダを引数として渡すことで、単一のテストケースまたはフォルダの中に含まれるすべてのテストケースを実行するユーティリティです。カラー表示が可能な環境では、各結果は適宜カラー表示されます。

fire-test-runnerは以下のように使用します。

$> fire-test-runner オプション "./tests"

指定できるオプションは以下の通りです。

-pポート番号
--port=ポート番号
UxUサーバに接続するポート番号を指定します。接続できない場合、fire-test-runnerはUxUサーバが起動していないものとみなして、自動的にUxUサーバの起動を試みます。デフォルトでは4444番ポートに接続を試みます。
--firefox=アプリケーションのパスまたはコマンド名
UxUサーバを実行するアプリケーションを指定します。Thunderbird上でテストを実行する場合や、特定のバージョンのFirefoxでテストを実行する場合などに使用します。デフォルトではfirefoxを起動します。
--named-profile=プロファイル名
--profile=プロファイルフォルダへのパス
特定のプロファイルでFirefoxを起動します。--named-profileオプションは、Firefoxのプロファイルをプロファイル名で指定し、--profileオプションはプロファイルを具体的なパスで指定します。これらのオプションのいずれかによってプロファイルが指定されている場合、fire-test-runnerはFirefoxがすでに起動している場合であっても、新しいプロセスを起動します。デフォルトではプロファイルを指定せずにFirefoxを起動します。
--wait=秒数
fire-test-runnerがFirefoxの新しいプロセスを起動した後、テストを再試行するまでの待ち時間を指定します。デフォルトでは3秒待ってから再試行します。
--retries=回数
テストを実行できなかった場合(Firefox、UxUサーバが起動していなかった場合)に、Firefoxのプロセスの起動とテストの再試行を行う回数を指定します。デフォルトでは試行に3回失敗したら自動的にfire-test-runner自身を終了します。
--quit
--no-quit
すべてのテストの実行を終えた後、Firefoxを自動的に終了するかどうかを指定します。--quitが指定された場合、テスト実行完了と同時にFirefoxのプロセスを終了します。デフォルトでは、テスト完了後もFirefoxを起動したままにします。
--close-main-windows
--no-close-main-windows
テストを実行する前に、Firefoxのブラウザウィンドウを自動的に閉じるかどうかを指定します。--close-main-windowsが指定された場合、Firefoxのすべてのブラウザウィンドウを閉じてからテストを実行します。デフォルトでは、すでに開かれているウィンドウを残した状態のままテストを実行します。
--use-color
--no-use-color
テスト結果を色分けして表示するかどうかを指定します。カラー表示が有効な場合、成功したテスト結果は緑色、失敗したテストは赤色、エラーは黄色で表示されます。デフォルトでは、カラー表示を利用可能と思われる環境では自動的にカラー表示を有効にします。

ifx - インタラクティブFirefoxシェル

ifxは、すでに起動しているUxUサーバに接続して対話的に操作を行うためのシェルです。「ツール」メニューの「UnitTest.XUL」から「UxUサーバを起動」を選択してUxUサーバが起動した状態でifxを起動すると、JavaScriptによってコマンドを対話的に入力できる状態になります。

UxUサーバに接続した状態では、JavaScriptの変数スコープはUxUサーバウィンドウ内のものとなっています。例えば alert("Hello!") と入力すると、UxUサーバのウィンドウ上に重なる形でアラートが表示されます。

UxUは自動テストの実行に重きを置いて開発されているため、UxUサーバでアクセスした際の変数スコープを変更するなどの機能はありません。コマンドラインでFirefoxを操作する事が主目的の場合は、MozReplを使用してください。

利用可能なヘルパーメソッド

ifxやtelnetなどで接続した場面での実行コンテキストでは、以下のヘルパーメソッド(関数)が利用できます。また、これら以外に、イベント発行系のヘルパーメソッドと、ファイル操作文字列操作のヘルパーメソッドも利用できます。

凡例

返り値 メソッド名(引数, [省略可能な引数])
説明

ヘルパーメソッド一覧

String inspect(in Object aObject)
渡された内容を可読性の高い文字列に変換して返します。具体的には以下のルールに則って文字列化します。
Array
配列のすべての要素をinspect()したものを返します。
Object型(オブジェクトリテラル、ハッシュ、カスタムクラスのインスタンス)
持っているすべてのプロパティの名前と値(inspect()した結果)を列挙したものを返します。
String inspectDOMNode(in DOMNode aNode)
渡されたDOMノードをXML文書のソースコード様の形式に変換して返します。
void puts(in Object aObject)
void print(in Object aObject)
渡された内容をそのまま文字列として表示します(toString()メソッドの実行結果と同じ形式になります)。複数の引数を渡すと、puts()は渡された内容を改行で連結して、print()は改行せずに連結して表示します。
void p(in Object aObject)
渡された内容をinspect()した結果を表示します。複数の引数を渡すと、それぞれを改行で連結して表示します。
void error(in Exception aException)
渡されたエラーなどの例外の内容を、可読性の高い形で表示します。
void load(in String aURI[, in Object aContext])
URIで指定したスクリプトを読み込み、第2引数で渡したオブジェクトまたは現在のコンテキストで実行します。
void quit()
void exit()
接続を切断します。FirefoxおよびUxUサーバは終了せずにそのまま起動し続けます。
void quitApplication(in Boolean aForceQuit)
Firefoxを終了し、接続を切断します。引数としてtrueを渡すと、終了確認を行わず強制的に終了します。
void closeMainWindows()
Firefoxのすべてのブラウザウィンドウを閉じます。
void runTest()