"Comment"出宏函数定义
"Comment" out Macro Function Definition
我正试图使用GTest来测试我的代码,但困扰我的一件事是它总是被编译。这会减慢我的发布版本。GTest测试看起来像这个
TEST(CaseName, TestName)
{
ASSERT_EQ(3, 3);
}
我希望能够通过一个简单的定义来注释掉我的所有测试。我可以用#ifdef
包装每个测试,但这真的很难看。我不想包含GTest头,而是以一种摆脱测试的方式定义自己的TEST。
到目前为止我所拥有的
我有一个宏,它将它定义为一个静态函数,这样它应该得到优化,但测试中的assert
仍然被编译(并且是未定义的)。这意味着我还必须定义每个ASSERT
和EXPECT
,这至少是乏味的。
#define TEST(tcase, test) static void uselessFunction##tcase##_##test(void)
我可以坚持下去,但我更喜欢更好的。希望有一些宏观魔术师可以提供帮助。
与其使用这样的宏,不如将所有测试放入编译为测试可执行文件的文件中,并将所有生产文件放入由测试exe链接的库中。
通过这种方式,您可以对Debug和Release版本运行gtest,但仅在构建测试可执行文件时编译测试代码。
相关文章:
- 在命名空间中定义函数还是限定函数
- 为什么在定义函数之前先声明它
- 使用用户定义函数的字符串反转
- 用户定义函数中的指针和输入
- 这个c++代码是如何在没有定义函数的情况下运行的
- 具有外部"c"和程序集的未定义函数
- 已定义函数时出现 G++ "未定义的引用"错误
- 将自定义函数传递到基抽象类中以延迟执行
- C++使用 rand 定义函数语法
- Arduino:在 loop() 和自定义函数中运行相同的代码时出现问题
- 将具有固定签名的自定义函数名称注入 CRTP
- 使用定义函数模板别名
- 是否可以使用单个定义定义函数的常量和常规版本?(使用模板,自动,decltype等)
- 在内联程序集中定义函数和从 C++ 调用时出现问题
- 在 Metal 着色器代码中,如何定义函数的 in/out 参数变量?
- 声明和定义函数静态会产生"undefined reference to function_name()"
- 朋友定义函数的名称空间是什么
- 介子 对用户定义函数的未定义引用
- 如何使用 "using" 关键字定义函数原型/签名
- 在 C 结构中定义C++函数