google testのオプションを使ってみた
どもです。
「単体テストの効率化」関係の記事の執筆に絡んで、最近google testを良く触っています。
今回のエントリでは、その中で知った(知っとけよ!)google testの便利なオプションについて書きます。
1.gtest_list_testsオプション
1つ目は、「gtest_list_tests」オプションです。
このオプションは、google testの実行ファイルに含まれている(有効な)テスト一覧を表示します。
使い方は、以下の通りです。
run_test.exe --gtest_list_tests
テスト一覧は、以下のような形式で表示されます。
TestCase1.
TestName1
TestName2
TestName3
TestCase2.
TestName1
TestName2
TestName3
このように、テストケース(テストスイート)の名前が表示され、そのケースに属するテストの名前が次の行から列挙されます。
表示された行の内容が、テストケース/テスト名のどちらなのかの判別は、以下のように行います。
- 行の末尾が「.」の場合には、テストケース
- 行の先頭にスペース(半角スペース2個)がある場合には、テスト名
…この両方を同時に満たすことは、google testの書き方のルール上、ないとは思います。
もし見つけたら、教えてください。
2.gtest_filterオプション
1つ目は、「gtest_filter」オプションです。
このオプションは、google testの実行ファイルに登録されたテストを、選択・指定して実行するためのオプションです。
使い方は、以下の通りです。
run_test.exe --gtest_fileter=TestCase1.TestName1
上述のパターンでは、「TestCase1」に属する「TestName1」のみを実行します。
なお、テストの指定方法には、もう少し便利な方法があります。
2.1.パターン指定
正規表現のように、「*」と「?」を指定することができます。
それぞれの文字は、
* | 任意の文字列 |
---|---|
? | 任意の1文字 |
に対応しています。
例えば、先述の「–gtest_list_tests」の結果で表示されるテストのうち、「TestCase1」のテストのみ実行したい場合は、以下のように指定します。
run_test.exe --gtest_fileter=TestCase1.*
これにより、
- TestCase1.TestName1
- TestCase1.TestName2
- TestCase1.TestName3
の3つが実行されます。
- TestCase2.TestName1
- TestCase2.TestName2
- TestCase2.TestName3
は、実行されません。
2.2.複数指定
「:」を使用することで、複数のパターンを指定できます。
例えば、先述の「–gtest_list_tests」の結果で表示されるテストのうち、「TestName1」と「TestName2」のテストだけを実行したい場合は、以下のように指定します。
run_test.exe --gtest_fileter=*.TestName1:*.TestName2
これにより、
- TestCase1.TestName1
- TestCase1.TestName2
- TestCase2.TestName1
- TestCase2.TestName2
の4つが実行されます。
- TestCase1.TestName3
- TestCase2.TestName3
の2つについては、実行されません。
3.まとめ
今回は、google testを使ってみて自分が便利でよく使うオプション2つについて、簡単ながら使い方を書きました。
google testは非常に優れたテストフレームワークです。
これ以外にも、有効なオプションがありますので、折を見てそれらを使ってみたいと思います。
ではっ!
ex.おまけ
google testの使い方について、日本語のガイド/マニュアルがあります。
今回のエントリで紹介していないオプションについては、そちらを参照してただければと思います。
入門ガイド
上級ガイド
ディスカッション
コメント一覧
まだ、コメントがありません