Как я могу передать параметр моим тестовым пакетам?
gtest --number-of-input=5
У меня есть следующий основной код gtest. И - number-of-input = 5
должен быть передан в InitGoogleTest ().
#include
#include
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);
}
Я изменил основной метод, чтобы отображать argv [i] после InitGoogleTest ()
.
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