GoogleTest: テストをスキップするには? 質問する

GoogleTest: テストをスキップするには? 質問する

Google Test 1.6 (Windows 7、Visual Studio C++) を使用しています。特定のテストをオフにするにはどうすればよいでしょうか? (つまり、テストが実行されないようにするにはどうすればよいでしょうか)。テスト全体をコメント アウトする以外に何かできることはありますか?

ベストアンサー1

ドキュメントGoogle テスト 1.7 用提案する:

すぐに修正できない壊れたテストがある場合は、その名前にプレフィックスを追加できます。これにより、そのテストは実行から除外されます。無効なテストは引き続きコンパイルされるため (したがって、腐敗しないため)、DISABLED_コードをコメント アウトしたり を使用するよりも、この方法の方が優れています。#if 0

上記のドキュメントからの例:

// Tests that Foo does Abc.
TEST(FooTest, DISABLED_DoesAbc) { ... }

class DISABLED_BarTest : public testing::Test { ... };

// Tests that Bar does Xyz.
TEST_F(DISABLED_BarTest, DoesXyz) { ... }

GTEST_SKIP()Google Test のより新しいバージョン (現在のバージョンは v1.12.1) にアクセスできる場合は、コメントで jslmsca が提案したマクロと、別の回答で Peter Bloomfield が提案したマクロを確認してください。advanced.md のサンプルから:

TEST(SkipTest, DoesSkip) {
  GTEST_SKIP() << "Skipping single test";
  EXPECT_EQ(0, 1);  // Won't fail; it won't be executed
}

class SkipFixture : public ::testing::Test {
 protected:
  void SetUp() override {
    GTEST_SKIP() << "Skipping all tests for this fixture";
  }
};

// Tests for SkipFixture won't be executed.
TEST_F(SkipFixture, SkipsOneTest) {
  EXPECT_EQ(5, 7);  // Won't fail
}

おすすめ記事