跳过所有Googletest单元测试类的编译

时间:2013-05-01 14:49:01

标签: c++ unit-testing c-preprocessor googletest

我的项目包含许多基于Googletest的单元测试,即继承自testing::Test的类。项目中的每个源文件文件夹都有一个子文件夹test/,其中包含这些类。

我希望用户能够删除对Googletest的依赖。最简单的方法是什么? Googletest会提供一些支持吗?

一种可能的解决方案是引入预处理器变量NOUNITTESTS。定义此选项后,编译期间将跳过依赖于Googletest的所有源。但我可以避免通过所有测试类并使用#ifndef NOUNITTESTS包围它们吗?

1 个答案:

答案 0 :(得分:3)

我不明白为什么用户依赖于您的项目单元测试。

通常,当您编译二进制文件或库时,您有目标来制作二进制文件和完全不同的目标来编译单元测试。这样,您的用户将永远不会依赖于您的单元测试。

如果你使用makefile - 只需为单元测试制作一个单独的目标。

如果您使用Visual Studio - 只需在解决方案中为单元测试创​​建一个单独的项目。

单元测试无论如何都不是已发布产品的一部分。例如,您的项目可能包含cleancompileinstalltest等目标。除非用户运行test目标,否则不会依赖GTest