gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 02:55:35 26 4
gpt4 key购买 nike

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

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

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

最佳答案

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

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

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

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

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

关于c++ - 跳过所有 Googletest 单元测试类的编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16320408/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com