https://www.chromium.org/developers/testing/running-tests
基本テストを実行(バイナリをgtest)
多くのテストがChromiumのUIを作成するのでデスクトップ環境が必要になる。それがない場合はXvfbを利用できる。下記のヘッドレスモードに関する記述を参照。
特定のサブテストを実行
--gtest_filter=FileUtilTest.*の用に実行してサブテストのみを実行できる。
出力を加工
テストの実行を早くするにめ、可視ウインドウを作成するテストはデフォルトではそのウインドウの何も描画しない。テストに可視ピクセルを描画させるには--enable-pixel-output-in-testsコマンドラインフラグを使う。これはユニットテストとブラウザテストで使える。
レイアウトテスト
Blinkはページレイアウトのテストのための大きいテストスイートを持っている。このテストをするにはblink_testsをビルドし、blink/tools/layout_tests/run_webkit_tests.sh --debugを実行する。
ユニットテストとブラウザテスト
ほとんどのsrc/のトップレベルディレクトリはユニットテストがある。例えばcontent/にはcontent_unittestsがあり、cc/にはcc_unittests、components/にはcomponents_unittestsがある。
Chromeスタックをすべて含むunit_testsターゲットもある。
ユニットテストはChromiumコードのある一部を個別の環境内で検証するために使う。通常_unittests.ccがファイル名につく。ブラウザテストはブラウザを完全に実行し、その中でテストを行う。これらのテストは通常_browsertest.ccがつく。ブラウザテストにブラウザテストの詳細がある。新しいテストを追加するには同じようなソースをコピーして作るのが普通。ブラウザテストよりもユニットテストのほうが早くて信頼度が高い。
WindowsでChromiumのクラッシュからダンプを取得
テストを開始する前にcrash_service.exeを実行しておく。これはクラッシュに介入しクラッシュダンプを作成する。クラッシュダンプはChromiumプロファイルのUser Data DirectoryのCrash Reportsフォルダに書き込まれる。
crash_service.exeで通常のChromeやChromiumのクラッシュダンプはを作成したいときは、--noerrdialogsフラグをつける。--enable-dcheckをつけるとリリースモードでもアサートエラーが得られる。
ヘッドレスモードで実行
sshでマシンを使っているときはディスプレイがないので、スクリーンに書き込むテストを実行できない。しかしLinuxではxvfb(X virtual Frame Buffer)とヘッドレスモードを使えばテストを実行できる。いくつかのやり方がある。
unittestsとtesting/xvfb.pyを使った実例(xcompmgrをインストールしておく必要があるがこれはinstall-build-deps.shを実行していれば行われている)。
python testing/xvfb.py out/Default/components_unittests
実行中のXvfbでブラウザテストを実行。DISPLAY環境変数を設定して行う。
Xvfb :100 -screen 0 1600x1200x24 & DISPLAY=localhost:100 out/Default/browser_tests --gtest_filter=FooTest.*
xvfb-runを使った実例。
xvfb-run -s "-screen 0 1024x768x24" ./out/Default/content_unittests
終了:2018/07/06 (金) 14:16:14