主立った実行時オプションについて説明します。
実行時オプションには(--gtest_list_tests
をのぞいて)対応する環境変数があります。環境変数に値を設定しておくと、実行時オプションを指定したときと同じ効果が得られます。
オプション | 環境変数 | 機能 |
---|---|---|
--gtest_list_tests | テストの一覧を表示する | |
--gtest_filter | GTEST_FILTER | 実行するテストを指定する(フィルタリングする) |
--gtest_repeat | GTEST_REPEAT | テストを繰り返す回数を指定する |
--gtest_break_on_failure | GTEST_BREAK_ON_FAILURE | テストが失敗した時点でテスト全体を中断させる |
--gtest_color | GTEST_COLOR | 結果のカラー表示を指定する |
--gtest_print_time | GTEST_PRINT_TIME | テストの実行時間を表示する |
--gtest_output | GTEST_OUTPUT | 結果の出力形式を指定する |
以下、次のコードを例に説明します。
#include <gtest/gtest.h> int add(int lhs, int rhs) { return lhs + rhs; } int mul(int lhs, int rhs) { return lhs * rhs; } TEST(AddTest, Test1) { ASSERT_EQ(2, add(1, 1)); } TEST(AddTest, Test2) { ASSERT_EQ(2, add(-1, -1)); } TEST(MulTest, Test1) { ASSERT_EQ(1, mul(1, 1)); } TEST(MulTest, Test2) { ASSERT_EQ(1, mul(-1, -1)); } int main(int argc, char* argv[]) { testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }
実行結果。
[==========] Running 4 tests from 2 test cases. [----------] Global test environment set-up. [----------] 2 tests from AddTest [ RUN ] AddTest.Test1 [ OK ] AddTest.Test1 [ RUN ] AddTest.Test2 ex8.cpp:20: Failure Value of: add(-1, -1) Actual: -2 Expected: 2 [ FAILED ] AddTest.Test2 [----------] 2 tests from MulTest [ RUN ] MulTest.Test1 [ OK ] MulTest.Test1 [ RUN ] MulTest.Test2 [ OK ] MulTest.Test2 [----------] Global test environment tear-down [==========] 4 tests from 2 test cases ran. [ PASSED ] 3 tests. [ FAILED ] 1 test, listed below: [ FAILED ] AddTest.Test2 1 FAILED TEST
--gtest_list_tests
テストの一覧を表示します。テストの実行はおこなわれません。
AddTest. Test1 Test2 MulTest. Test1 Test2
--gtest_filter
実行するテストを指定します。
テストケース名やテスト名を指定することで、一部のテストのみを実行することができます。
また名前の指定では、ワイルドカード(*
)を使うこともできます。
オプションの指定例 | 実行されるテスト |
---|---|
--gtest_filter=AddTest.* |
テストケース名がAddTest のテストのみ実行する |
--gtest_filter=*.Test1 |
テスト名がTest1 のテストのみ実行する |
--gtest_filter=*Test.Test1 |
テストケース名が*Test 、テスト名がTest1 のテストのみ実行する |
--gtest_filter=AddTest.Test* |
テストケース名がAddTest 、テスト名がTest* のテストのみ実行する |
--gtest_filter=-*.Test1 |
テスト名がTest1 のテスト以外のテストのみ実行する |
--gtest_filter=AddTest.*-AddTest.Test1 |
テストケース名がAddTest でAddTest.Test1 を除いたテストのみ実行する |
--gtest_repeat
テストを実行する回数を指定します。
負数を指定した場合、テストは繰り返し実行され停止しません。
オプションの指定例 | 実行されるテスト |
---|---|
--gtest_repeat=2 |
テストは2回実行される |
--gtest_repeat=-1 |
テストは停止されるまで繰り返し実行される |
--gtest_break_on_failure
テストが失敗したしたとき、テストスイート全体を中断させます。
ASSERT_*
マクロが失敗した場合でも、テストが中断するだけでテストケースやテストスイート全体は停止せず、次のテストが実行されます。
このオプションを指定すると、テストが失敗した時点でテストスイート全体を中断し、テストを停止させます。
このオプションは--gtest_repeat
に負数を指定した場合にも有効で、繰り返しの中でテストが失敗したときに繰り返しも中断されます。
--gtest_color
カラー表示を指定します。
--gtest_color=yes
、あるいは--gtest_color=1
と指定すると、テスト結果が色付けされます。
--gtest_color=yes
を指定したときの実行結果。
[==========] Running 4 tests from 2 test cases. [----------] Global test environment set-up. [----------] 2 tests from AddTest [ RUN ] AddTest.Test1 [ OK ] AddTest.Test1 [ RUN ] AddTest.Test2 ex8.cpp:20: Failure Value of: add(-1, -1) Actual: -2 Expected: 2 [ FAILED ] AddTest.Test2 [----------] 2 tests from MulTest [ RUN ] MulTest.Test1 [ OK ] MulTest.Test1 [ RUN ] MulTest.Test2 [ OK ] MulTest.Test2 [----------] Global test environment tear-down [==========] 4 tests from 2 test cases ran. [ PASSED ] 3 tests. [ FAILED ] 1 test, listed below: [ FAILED ] AddTest.Test2 1 FAILED TEST
--gtest_print_time
テストの実行時間を表示します。
--gtest_print_time
を指定したときの実行結果。
[==========] Running 4 tests from 2 test cases. [----------] Global test environment set-up. [----------] 2 tests from AddTest [ RUN ] AddTest.Test1 [ OK ] AddTest.Test1 (0 ms) [ RUN ] AddTest.Test2 ex8.cpp:20: Failure Value of: add(-1, -1) Actual: -2 Expected: 2 [ FAILED ] AddTest.Test2 (30 ms) [----------] 2 tests from AddTest (31 ms total) [----------] 2 tests from MulTest [ RUN ] MulTest.Test1 [ OK ] MulTest.Test1 (0 ms) [ RUN ] MulTest.Test2 [ OK ] MulTest.Test2 (0 ms) [----------] 2 tests from MulTest (32 ms total) [----------] Global test environment tear-down [==========] 4 tests from 2 test cases ran. (67 ms total) [ PASSED ] 3 tests. [ FAILED ] 1 test, listed below: [ FAILED ] AddTest.Test2 1 FAILED TEST
--gtest_output
テスト結果を指定した形式でファイルに出力します(現時点ではXML形式のみのサポートのようです)。
--gtest_output="xml"
と指定して実行した場合、test_detail.xmlというファイル名のXMLファイルが生成されます。
--gtest_output="xml:ファイル名"
と指定して実行した場合、指定したファイル名のXMLファイルが生成されます。
--gtest_output="xml:result.xml"
を指定したときのresult.xmlファイルの内容。
<?xml version="1.0" encoding="UTF-8"?> <testsuite tests="4" failures="1" disabled="0" errors="0" time="44" name="AllTests"> <testsuite name="AddTest" tests="2" failures="1" disabled="0" errors="0" time="1"> <testcase name="Test1" status="run" time="0" classname="AddTest" /> <testcase name="Test2" status="run" time="1" classname="AddTest"> <failure message="ex8.cpp:20
Value of: add(-1, -1)
 Actual: -2
Expected: 2" type=""/> </testcase> </testsuite> <testsuite name="MulTest" tests="2" failures="0" disabled="0" errors="0" time="41"> <testcase name="Test1" status="run" time="0" classname="MulTest" /> <testcase name="Test2" status="run" time="0" classname="MulTest" /> </testsuite> </testsuite>