gpt4 book ai didi

c++ - "Comment"out 宏函数定义

转载 作者:搜寻专家 更新时间:2023-10-31 01:52:56 26 4
gpt4 key购买 nike

我正在尝试使用 GTest 来测试我的代码,但困扰我的一件事是它总是被编译进去。这会减慢我的发布构建速度。 GTest 测试看起来像这样

TEST(CaseName, TestName)
{
ASSERT_EQ(3, 3);
}

我希望能够通过一个简单的定义来注释掉我所有的测试。我可以将每个测试包装在 #ifdef 中,但这真的很难看。我不想包含 GTest header ,而是自己定义 TEST 以摆脱测试。

到目前为止我有什么。

我有一个将它定义为静态函数的宏,因此它应该得到优化,但测试中的 assert 仍然会被编译(并且未定义)。这意味着我还必须定义每个 ASSERTEXPECT,这至少可以说是乏味的。

#define TEST(tcase, test) static void uselessFunction##tcase##_##test(void)

可以坚持这个,但我更喜欢更好的东西。希望有一些宏观魔术师可以提供帮助。

最佳答案

与其使用这样的宏,不如将所有测试放入编译成测试可执行文件的文件中,并将所有生产文件放入由测试 exe 链接的库中。

通过这种方式,您可以让 gtest 针对 Debug 和 Release 构建运行,但只在构建测试可执行文件时编译测试代码。

关于c++ - "Comment"out 宏函数定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11838307/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com