CMAKE <-> make 和单元测试:创建除非明确命名否则不会编译的目标
cmake <-> make and unit testing: creating targets that don't compile unless named explicetly
我想在模块中使用gtest构建单元测试。每个模块通常是多个可测试单元的集合。在开发模块的同时,我一次创建一个单元测试,完成后,我将它们合并为整个模块的一个单元。
为了便于说明,每个测试看起来都是这样的。
// file test1.cc
TEST1()
{
}
TESTn
{
)
#ifdef ISOLATED_TEST_COMPILE
int main()
{
/* google test boiler plate */
}
#endif
一个连接测试的文件看起来像这个
#include "test1.cc"
#include "testn.cc"
int main()
{
/* google test boiler plate */
}
因此,我不希望生成的make-build只在命名时构建单独的测试,也不希望在"all"目标中包含单独的测试。整个模块统一单元测试构建应该在所有目标中。
我不希望make all
重复编译单个测试。
如果单元测试不在生产中,那么快速而肮脏的方法就是使用#ifdef,与上面的方法相同。
然后你只需要像这样包装ifdefs的定义。
#ifdef ALL
...
#else
#define UNIT1
....
#end if
相关文章:
- LLVM 编译:目标的配方 '../lib/IR/Release+Asserts/Intrinsics.gen.tmp' failed
- 编译为目标 wasm 时未定义的符号
- 如何为在 x86 主机上为 arm 目标交叉编译的项目安装依赖项
- CMake:如何清除目标编译选项
- CMake:替换接口目标的编译标志
- 在单个makefile目标中同时编译C和CPP源
- 用MacOS主机上的Windows目标交叉编译Golang
- 是否可以在编译后创建 CMake 目标和文件目录?
- 在没有节点GYP的目标平台上编译C/C 文件
- 从源代码编译 openCV:*** 未指定目标,也未找到生成文件.停
- C++多个目标文件中的模板和编译
- 在不同于依赖DLL的文件夹中输出已编译目标的正确方法是什么
- 外部"C"已编译目标代码中的函数
- 在目标平台上编译 Boost 自己是否有意义
- RInside 编译:制定目标
- 编译Cyanoboot:没有规则来实现目标
- 目标C++不编译
- 使用Iibjson尝试,catch在目标交叉编译的linux板中不起作用
- 有什么工具可以为Windows目标编译C++2011代码
- 目标 c - 编译 Collada DOM (c++) 以在 iOS 中使用