googletestで指定したテストのみ実行する
コマンドラインの引数で指定する :
--gtest_filter=TestCase.TestName
または環境変数。*
は任意の文字列、?
は任意の一文字にマッチする :
export GTEST_FILTER="TestCase.*"
複数の条件を指定する場合:
で区切る :
--gtest_filter="TestCase.*:SomeCase.*"
スキップする、-
がネガティブパターン :
--gtest_filter="TestCase.*-TestCase.B" # TestCase内の全てテストするが、TestCase.Bは実行されない
一時的に無効にする
コード中、テストケース、テスト名の前にDISABLED_
をつける :
// DISABLED_をつけたテストだけ無効になる // DISABLED_テストケースにしても、そのテストケース全体ではなく、そのテストだけ無効になる TEST(DISABLED_TestCase, A) { ... // 実行されない } TEST(TestCase, B) { ... // TestCase.Bは実行される } TEST(SomeCase, DISABLED_C) { ... // 実行されない }
DISABLEDなテストがあると結果に件数だけ示される :
[==========] Running 1 test from 1 test suite. [----------] Global test environment set-up. [----------] 1 test from TestCase [ RUN ] TestCase.B [ OK ] TestCase.B (0 ms) [----------] 1 test from TestCase (0 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test suite ran. (0 ms total) [ PASSED ] 1 test. YOU HAVE 2 DISABLED TESTS
DISABLEDにしたテストを一時的に実行するには引数をつけて実行する :
--gtest_also_run_disabled_tests
スキップする
テストコードにGTEST_SKIP()
を入れる :
TEST(SkipTest, DoesSkip) { GTEST_SKIP() << "このテストだけスキップ"; FAIL(); // 実行されない } class SkipFixture : public ::testing::Test { protected: void SetUp() override { GTEST_SKIP() << "このテストケース全体をスキップ"; } }; // スキップされる TEST_F(SkipFixture, SkipsOneTest) { FAIL(); // 実行されない }
SKIPPEDで明示される:
[==========] Running 2 tests from 2 test suites. [----------] Global test environment set-up. [----------] 1 test from SkipTest [ RUN ] SkipTest.DoesSkip utest_something.cpp:4: Skipped このテストだけスキップ [ SKIPPED ] SkipTest.DoesSkip (0 ms) [----------] 1 test from SkipTest (0 ms total) [----------] 1 test from SkipFixture [ RUN ] SkipFixture.SkipsOneTest utest_something.cpp:11: Skipped このテストケース全体をスキップ [ SKIPPED ] SkipFixture.SkipsOneTest (0 ms) [----------] 1 test from SkipFixture (0 ms total) [----------] Global test environment tear-down [==========] 2 tests from 2 test suites ran. (0 ms total) [ PASSED ] 0 tests. [ SKIPPED ] 2 tests, listed below: [ SKIPPED ] SkipTest.DoesSkip [ SKIPPED ] SkipFixture.SkipsOneTest
REF :