我正在尝试使用 GTest 来测试我的代码,但困扰我的一件事是它总是被编译进去。这会减慢我的发布构建速度。GTest 测试看起来像这样
TEST(CaseName, TestName)
{
ASSERT_EQ(3, 3);
}
我希望能够通过一个简单的定义来注释掉我所有的测试。我可以将每个测试都包含在#ifdef
's 中,但这真的很难看。我不想包含 GTest 标头,而是自己定义 TEST 以摆脱测试。
到目前为止我所拥有的。
我有一个将其定义为静态函数的宏,因此它应该得到优化,但assert
测试中的 's 仍然被编译(并且未定义)。这意味着我还必须定义每一个ASSERT
,EXPECT
至少可以说是乏味的。
#define TEST(tcase, test) static void uselessFunction##tcase##_##test(void)
我可以坚持这一点,但我更喜欢更好的东西。希望有一些宏观魔术师可以提供帮助。