在测试用例中使用 gtest 特定参数
Using gtest specific parameters inside the testcase
我使用 gtest 作为我的项目的测试框架,我需要在测试用例中使用以下作为 gtest 参数传递的参数值
./gtest_bin --gtest_repeat=5
目前我正在做的是,我创建了一个从 "EmptyTestEventListener" 扩展的自定义侦听器,并在收到以下函数的回调时将迭代值传递给全局变量,如下所示,
自定义监听器class
class customListener : public testing::EmptyTestEventListener
{
customListener(int *iteration) : m_iteration(iteration) {}
virtual void OnTestIterationStart(const testing::UnitTest& unit_test, int iteration)
{
*m_iteration = iteration;
}
}
主要
int g_iteration;
int main(int argc, char **argv)
{
testing::InitGoogleTest(&argc, argv);
if(argc > 1)
g_array_length = atoi(argv[1]);
testing::TestEventListeners& listners = testing::UnitTest::GetInstance()->listeners();
listners.Append(new printers::customListener(&g_iteration));
return RUN_ALL_TESTS();
}
有没有更简单的方法获取这个gtest参数值?
如果通用化,有没有办法获取可以在测试用例中使用的任何 gtest 特定参数值?
IMPORTANT NOTE
Please use with great care - as this is not documented feature and
might be changed (i.e. it might stop working) in next gtest/gmock
versions.
您可以通过 ::testing::GTEST_FLAG(flag_name)
访问任何标志 - 在您的情况下 - ::testing::GTEST_FLAG(repeat)
.
我从这个 manual 并通过检查 gtest.h 文件间接获得了这些信息。
我使用 gtest 作为我的项目的测试框架,我需要在测试用例中使用以下作为 gtest 参数传递的参数值
./gtest_bin --gtest_repeat=5
目前我正在做的是,我创建了一个从 "EmptyTestEventListener" 扩展的自定义侦听器,并在收到以下函数的回调时将迭代值传递给全局变量,如下所示,
自定义监听器class
class customListener : public testing::EmptyTestEventListener
{
customListener(int *iteration) : m_iteration(iteration) {}
virtual void OnTestIterationStart(const testing::UnitTest& unit_test, int iteration)
{
*m_iteration = iteration;
}
}
主要
int g_iteration;
int main(int argc, char **argv)
{
testing::InitGoogleTest(&argc, argv);
if(argc > 1)
g_array_length = atoi(argv[1]);
testing::TestEventListeners& listners = testing::UnitTest::GetInstance()->listeners();
listners.Append(new printers::customListener(&g_iteration));
return RUN_ALL_TESTS();
}
有没有更简单的方法获取这个gtest参数值?
如果通用化,有没有办法获取可以在测试用例中使用的任何 gtest 特定参数值?
IMPORTANT NOTE Please use with great care - as this is not documented feature and might be changed (i.e. it might stop working) in next gtest/gmock versions.
您可以通过 ::testing::GTEST_FLAG(flag_name)
访问任何标志 - 在您的情况下 - ::testing::GTEST_FLAG(repeat)
.
我从这个 manual 并通过检查 gtest.h 文件间接获得了这些信息。