このページは Mozilla の開発者が利用できる自動テストのための選択肢の概要を提供します。
--enable-tests オプションを伴っての Firefox のビルドの後、あなたは objdir から、単純な make コマンドでいずれのリグレッションテストも実行することができます。
Mozilla はいくつかのテスティングフレームワークを使っています。以下に、低レベルのユニットテストから高レベルのシステムテストまで大雑把に並べて列挙します。
TBPL コード | コマンド | 説明 |
---|---|---|
(B) | make check | コンパイルが必要なコードのテストはスクリプトから利用可能でないインターフェースをテストできますが、書いたりメンテナンスしたりするのは大変です。 |
X | make xpcshell-tests | JavaScript コードが xpcshell の上で動作します。テストは XPCOM コンポーネントにアクセスできますが、ドキュメントやウィンドウを伴った動作は容易ではありません。 |
J | make jstestbrowser | JavaScript エンジンのリグレッションテストです。 |
C | make crashtest | 1つの Web ページが読み込まれます。 |
R | make reftest | Web ページのペアから成る reftest です。このテストはそれらのページが完全に同じように描画された場合にパスします。視覚的な Web 関係の機能のテストに適しています。 |
M | make mochitest-plain | Mochitest のページがブラウザ上に低い権限で読み込まれます。Web 機能の徹底的なテストに適しています。 |
Moth | make mochitest-chrome | Chrome mochitest のページが高い権限で読み込まれます。 |
make mochitest-browser-chrome | Browser chrome テストがブラウザウィンドウのスコープで実行されます。フロントエンドのコードを直接テストするのに適しています。 | |
Z | mozmill instructions | Mozmill は記録/再生型の自動化ツールです。エンドユーザの操作を、自動化のための API を使った JavaScript としてキャプチャします。 |
R(reftest)と C(crashtest)を除いて、すべての個々のテストは個別に成功および失敗の条件を定義しています。
すべてのテストスイートは、クラッシュ、ハングアップ、そして(デバッグビルドにおいては)trace-refcnt leaks をテストの失敗として扱います。NS_ASSERTION は X(xpcshell-tests)においては致命的なエラー、R(reftest)/C(crashtest)/J(jstestbrowser)では注意が必要な失敗として扱われ、M(mochitest-plain)では無視されます。
ほとんどのテストスイートは共通のテストログの形式を共有していますので、実行時の失敗を探す場合は UNEXPECTED で検索できます。
EXTRA_TEST_ARGS='--debugger=gdb' make [suite]
でデバッグすることもできます。
追加情報
wikimo:SoftwareTesting:Scratchpadページに書かれた内容は無視して、wikimo:SoftwareTestingだけを参照してください。Scratchpadは作業中の物で、まず間違いなく、情報が古いか間違っています。
何か読み物を探しているなら、wikimo:SoftwareTestingおよび自動テストのTipsとトリックというドキュメントもあります。
進行中のさらなる試みが他にもあります。:
- あなたはスタンドアロンのテストプログラムをC/C++で書くことができます。この選択肢は、XPCOMを経由せずに機能をテストするために利用することができます。
- ブラウザの表示内容として実行されるテストを書くために、JSUnit が利用できます。特にDOMやパーサのテストに便利ですが、しかしChrome特権を必要とする処理はできません。
- 完全なブラウザのインスタンスを必要とするため、JsUnitはおそらく当分の間、make checkの対象にはならないでしょう。
- wikimo:SoftwareTesting#Ideas_to_Collectにはいくつかのjsunitの例が列挙されています。
- より詳しい情報は、wikimo:SoftwareTesting:Tools:jsUnitのドキュメントを参照してください。
- 例として、いくつかのXForms testsがJsUnitを使用しています。
既存のテストハーネスとフレームワーク
(元文書:wikimo:SoftwareTesting:Catalog_of_Automated_Tests)
- Tinderbox performance tests
- Places test script
- Netwerk unit tests
- javascript tests
- nss tests
- nspr tests
- layout tests - diff of frame tree dump against golden master
- bz's copy of netwerk tests for xmlserializer
- W3C DOM Tests jsunitを使用
- XSLT Tests
- https://hixie.ch/tests/MANIFEST hixieによるすべてのテスト
- https://hixie.ch/tests/MANIFEST-visual hixieによるテストのうち、動的でない物だけのサブセット
- FoxUnit - AllPeers folksによる、jUnitに似たFirefox用のテスト実行環境