在测试用例中使用gtest特定参数

时间:2016-05-04 05:57:25

标签: c++ googletest

我使用gtest作为我项目的测试框架,我需要使用以下参数值作为gtest参数传递给测试用例

./gtest_bin --gtest_repeat=5

目前我正在做的是,我已经创建了一个从“EmptyTestEventListener”扩展的自定义侦听器,并在接收到以下函数的回调时将迭代值传递给全局变量,

customListener类

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特定参数值?

1 个答案:

答案 0 :(得分:1)

  

重要提示   请谨慎使用 - 因为这是未记录的功能和   可能会在下一个gtest / gmock中改变(即它可能会停止工作)   版本

您可以::testing::GTEST_FLAG(flag_name)访问任何旗帜 - 在您的情况下 - ::testing::GTEST_FLAG(repeat)

我通过此manual间接获取此信息并检查gtest.h文件。