有没有办法在不使用 #ifdef 的情况下不编译发布版本中的单元测试函数体?
Is there a way to not compile unit test function body in release build without using #ifdef?
假设我们有许多单元测试函数仅用于调试构建。我们根本不想在发布版本中编译这些函数。除了每次都用 #ifdef _DEBUG 包装单元测试函数之外,还有其他方法吗?
#ifdef _DEBUG
void testfunc_xxx() {
...
}
#endif
例如,我们可以有一个宏
#ifdef _DEBUG
#define UNITTESTFUNC(name) void name()
#else
#define UNITTESTFUNC(name) template<typename T> void name()
#endif
UNITTESTFUNC(testfunc_xxx) {
...
}
但它取决于延迟的模板解析。有没有更好的方法?谢谢!
还有另一种思想流派将生产代码与所有单元测试代码分开,将每个代码保存在自己的库中。
然后,可以将单元测试代码内置到其自己的应用程序中,将生产代码作为库调用。
相关文章:
- 用C++在单独的头文件中完成函数体
- 我可以在 C++ 中的函数体之外进行操作吗?
- 有没有办法在不使用 #ifdef 的情况下不编译发布版本中的单元测试函数体?
- binary_search() 函数在我的函数体中不起作用
- 如何显示函数开始、结束行和函数体?
- 主函数体未检测到对重载可变变量模板化函数C++的调用
- "std::function"的简单版本:函数对象的生存期?
- 错误:函数声明符之后的预期函数体
- C++编译器如何检测非常量函数体
- 使用委托调用构造函数和在另一个构造函数体中调用的区别
- Flex和Bison忽略了函数体
- 我看到将我的类成员函数指定为内联实际上会增加执行时间,即使函数体非常小
- 为什么将函数体放置在单独的源代码文件而不是标题中的C/C 中
- 类(模板)成员函数体内部的ADL查找
- 如果未设置编译符号,如何排除方法?如何传递可变数量的参数并在函数体中格式化它们
- constexpr函数体c++14中可以有非文字类型的定义变量吗
- 内联失败:可以在链接时覆盖函数体
- C++函数体中的Const变量
- 在类定义之外的模板类成员函数体中,何时需要模板参数
- c++--直接--访问非成员函数体中的类成员