1

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

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

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

4

1 回答 1

3

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

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

如果您使用 makefile - 只需为单元测试创​​建一个单独的目标。

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

无论如何,单元测试都不是已发布产品的一部分。例如,您的项目可能有诸如cleancompileinstall、之类的目标test。除非用户运行test目标,否则不会依赖GTest.

于 2013-05-01T15:28:53.560 回答