web-dev-qa-db-ja.com

パラメータをgtestに渡す方法

テストスイートにパラメーターを渡すにはどうすればよいですか?

_gtest --number-of-input=5
_

次のメインgtestコードがあります。また、_--number-of-input=5_をInitGoogleTest()に渡す必要があります。

_#include <iostream>
#include <gtest/gtest.h>

int main(int argc, char **argv) {
  std::cout << "Running main() from gtest_main.cc\n";
  ::testing::GTEST_FLAG(output) = "xml:hello.xml";
  testing::InitGoogleTest(&argc, argv);

  return RUN_ALL_TESTS();
}
_

次のようにパラメーターをテストスイート/ケースに渡す方法がわかりませんか?

_class TestTwo : public QuickTest {
 protected:
  virtual void SetUp() {
      QuickTest::SetUp();
      square = new Square(10);
      circle = new Circle(10);

  }

  virtual void TearDown() {
      delete square;
      delete circle;
      QuickTest::TearDown();
  }

  Square* square;
  Circle* circle;
};


// Now, let's write tests using the QueueTest fixture.

// Tests the default constructor.
TEST_F(TestOne, DefaultConstructor) {
  EXPECT_EQ(100.0, square->area());
}
TEST_F(TestOne, DefaultDestructor) {
  EXPECT_EQ(1,1);
}
TEST_F(TestOne, VHDL_EMIT_Passthrough) {
  EXPECT_EQ(1,1);
}
TEST_F(TestOne, VHDL_BUILD_Passthrough) {
  EXPECT_EQ(1,1);
}
_

追加されました

Mainメソッドを変更して、InitGoogleTest()の後にargv [i]を表示しました。

_int main(int argc, char **argv) {
    std::cout << "Running main() from gtest_main.cc\n";
    ::testing::GTEST_FLAG(output) = "xml:hello.xml";
    testing::InitGoogleTest(&argc, argv);

    for (int i = 0; i < argc; i++) {
        cout << i << ":" << argv[i] << endl;
    }
_

これは、gtestに渡される引数です:_./s --number-of-input=5 --gtest_filter=Test_Cases1*_。

これが結果です:

_Running main() from gtest_main.cc
0:./s
1:--number-of-input=5
Note: Google Test filter = Test_Cases1*
[==========] Running 0 tests from 0 test cases.
[==========] 0 tests from 0 test cases ran. (0 ms total)
[  PASSED  ] 0 tests.
_

gtestは、_Test_Cases1_という名前のないテストを除外し、gtestで始まるもの以外の正しい引数も表示します。

リファレンス- GoogleTestで特定のテストケースを実行する方法

34
prosseek

Google Testは独自のコマンドラインオプションのみを認識します。 1つが見つかるたびに、それをargvから削除し、それに応じてargcを更新します。そのため、InitGoogleTestが戻った後、argvに残っているものはすべて利用できます。自分を処理する。お気に入りのコマンドライン解析手法を使用して、結果をいくつかのグローバル変数に保存し、テスト中に参照します。

コマンドラインオプションのように見える Googleテストオプションであるが、実際にはそうでない場合、プログラムはヘルプメッセージを出力し、テストを実行せずに終了します。 Googleテストのオプションはgtest_で始まります。

45
Rob Kennedy