2012年2月25日土曜日

Google Test を使ってみる - その4(オプション)

Google Test では様々なオプションを環境変数または起動時引数に指定できます。
今回はそちらの紹介をしたいと思います。

オプション内容
--gtest_list_testsテストの一覧を出力します。
--gtest_filter=<条件>実行するテストを限定します。
--gtest_also_run_disabled_testsDISABLE なテストも実行します。
--gtest_repeat=<COUNT>テストの繰り返し回数を指定します。
負数にすると無限に繰り返します。
--gtest_shuffleテストの実行順序をシャッフルします。
--gtest_random_seed=<NUMBER>シャッフルする際の乱数シードを指定します。
0 を指定すると時間からシードを決定します。
--gtest_color=<yes|no|auto>出力を色付で表示するか選択します。
--gtest_print_time=0テストの実行時間を出力しないようにします。
--gtest_output=xml[:DIRECTORY|:FILE]指定のディレクトリまたはファイルにテスト結果の xml を出力します。デフォルトのファイル名は test_details.xml です。
--gtest_break_on_failureテストが失敗したときに break します。
--gtest_throw_on_failureテストが失敗したときに例外をスローします。
--gtest_catch_exceptionsテストが例外をキャッチするようにします。
--helpヘルプを表示します。

環境変数の場合は、最初の -- をのぞいた変数名を使います。(GTEST_FILTER, GTEST_COLOR, etc...)

よく使うオプション
それぞれのオプションの機能については、マニュアルを見ればわかるのでそちらを見ていただいて、ここでは個人的に使用頻度の高い機能と思うオプションを紹介します。

--gtest_filter=<条件>
実行するテストを指定します。
条件には、 * が使用できます。 * は任意の文字列にマッチします。
--gtest_filter=* ですべてのテスト名にマッチします。
--gtest_filter=FooTest.* でテストケース FooTest 内のすべてを実行します。

:(コロン) で OR 条件を記述できます。
--gtest_filter=*Constructor*:*Copy* で、Constructor または Copy を含むテストを実行します。

-(マイナス) で除外も可能です。
--gtest_filter=FooTest.*-FooTest.Bar で、FooTest.Bar テストを除く、テストケース FooTest 内のテストを実行します。

--gtest_filter の詳しい使用方法は、上級ガイドのテストを選択するを参照してください。

--gtest_shuffle
このオプションを指定するとテストケース・テストそれぞれランダムな順番で実行されます。
テストが他のテストの結果に依存していないか確認するのに最適です。
乱数のシードは、--gtest_random_seed=<NUMBER> で指定可能です。

--gtest_repeat=<COUNT>
テストを繰り返し実行します。
繰り返し実行させることで、再現性の低いテスト失敗が出るまで繰り返すことができます。
テストで乱数を使っている場合などに有効でしょう。
--gtest_repeat=-1 とすると無限に繰り返すので、
退社するまえにテストを走らせておいて一晩テストをさせることもできます。
また、--gtest_shuffle を指定すると毎回異なるシードでテストを行うので活用してみてください。

※ Google Test 関係の記事一覧はこちら

0 件のコメント:

コメントを投稿