[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

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 :