【问题标题】:Best way of including Unit Tests in a C++ open source project?在 C++ 开源项目中包含单元测试的最佳方式?
【发布时间】:2017-11-21 20:08:37
【问题描述】:

我计划发布一个我一直在从事的 C++ 项目,作为我的第一个开源项目。我使用 GTest 作为我的单元测试框架,我不知道在公共项目中包含此依赖项的常用过程是什么。

现在我将 GTest 作为我主项目的子模块,但是查看其他项目,他们通常没有任何子模块依赖项,让人们克隆 GTest 以及我项目的一部分似乎是错误的,就好像他们已经在自己的单元测试中使用它一样,他们最终会得到重复的代码等。

此类案件的常见程序是什么?

非常感谢!

【问题讨论】:

  • 你看过的项目是如何进行单元测试的?
  • 我继续检查,似乎有一些 cmake 文件试图找到系统中安装的依赖项,所以有一个“FindGTest.cmake”可能会完成这项工作。我需要对其进行测试,当我这样做时,我会返回结果。

标签: c++ unit-testing open-source


【解决方案1】:

通常我们将 test 放在编译标志(或 cmake 变量,或 autotools 配置标志,或...)下,并在未检测到或未要求编译者使用框架时禁用测试编译。

这样,依赖项不是必需的,但如果用户希望使用单元测试,则可以添加它。

【讨论】:

  • 是的。这就是我的想法:添加一个 cmake 标志,指示用户是否要生成测试,但我的问题更多与如何修复“未检测到框架时”有关。我想我使用“FindGTest.cmake”找到了解决方案,但我还没有时间尝试。我会在测试后返回我的结果!
  • 好吧,正如我所写,当未检测到时,只需禁用它。您可以添加一条消息,指示“未找到 Lib XXX;禁用使用 lib XXX”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-09
  • 1970-01-01
  • 2010-09-27
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
相关资源
最近更新 更多