我的项目包含许多基于Googletest的单元测试,即继承自testing::Test
的类。项目中的每个源文件文件夹都有一个子文件夹test/
,其中包含这些类。
我希望用户能够删除对Googletest的依赖。最简单的方法是什么? Googletest会提供一些支持吗?
一种可能的解决方案是引入预处理器变量NOUNITTESTS
。定义此选项后,编译期间将跳过依赖于Googletest的所有源。但我可以避免通过所有测试类并使用#ifndef NOUNITTESTS
包围它们吗?
答案 0 :(得分:3)
我不明白为什么用户依赖于您的项目单元测试。
通常,当您编译二进制文件或库时,您有目标来制作二进制文件和完全不同的目标来编译单元测试。这样,您的用户将永远不会依赖于您的单元测试。
如果你使用makefile - 只需为单元测试制作一个单独的目标。
如果您使用Visual Studio - 只需在解决方案中为单元测试创建一个单独的项目。
单元测试无论如何都不是已发布产品的一部分。例如,您的项目可能包含clean
,compile
,install
,test
等目标。除非用户运行test
目标,否则不会依赖GTest
。