2013-05-01 56 views
1

我的项目具有许多基于Googletest的单元测试,即继承testing::Test的类。项目中的每个源文件文件夹都有这些类所在的子文件夹test/跳过所有Googletest单元测试类的编译

我希望用户能够移除对Googletest的依赖关系。什么是最简单的方法来做到这一点? Googletest是否提供一些支持?

一种可能的解决方案是引入预处理器变量NOUNITTESTS。当定义这个时,在编译过程中会跳过取决于Googletest的所有源代码。但是,我是否可以避免通过所有的测试课程并通过#ifndef NOUNITTESTS围绕它们?

回答

3

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

正常情况下,当你编译你的二进制文件或库时,你的目标是编译这个二进制文件和完全不同的目标来编译单元测试。这样你的用户永远不会依赖你的单元测试。

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

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

无论如何,单元测试不是发布产品的一部分。例如,您的项目可能有像clean,compile,install,test这样的目标。除非用户运行test目标,否则不会依赖GTest