pro*_*eek 32 c++ unit-testing googletest
如何将参数传递给我的测试套件?
gtest --number-of-input=5
Run Code Online (Sandbox Code Playgroud)
我有以下主要的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();
}
Run Code Online (Sandbox Code Playgroud)
我不知道如何将我的参数传递给测试套件/案例如下?
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);
}
Run Code Online (Sandbox Code Playgroud)
我修改了main方法以显示之后的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;
}
Run Code Online (Sandbox Code Playgroud)
这是给予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.
Run Code Online (Sandbox Code Playgroud)
gtest过滤掉没有名称的测试,Test_Cases1
它还显示除了那些开头的正确参数gtest
.
Rob*_*edy 46
Google Test仅识别自己的命令行选项.每次找到一个,它都会从中删除argv
并相应地更新argc
,因此在InitGoogleTest
返回后,剩下的任何内容argv
都可供您自行处理.使用您最喜欢的命令行解析技术,将结果存储在某个全局变量中,并在测试期间引用它.
如果命令行选项看起来像 Google测试选项但实际上不是,那么程序将打印其帮助消息并退出而不运行任何测试.Google测试选项始于gtest_
.