如何在编译时排除单元测试

时间:2016-05-12 13:50:10

标签: c++ qt unit-testing

我目前正在为我的公司重构部分qt / c ++应用程序,他们绝对没有单元测试。

我想补充一些,但我实际上从未进行过测试设置,因此我不能100%确定最佳方法。这就是我的想法(随意评论,但这不是我的主要问题)

  • 我将使用QTest库,因为我们使用QT并且我不想在项目中添加其他lib
  • 在src目录的每个子文件夹中,我将添加一个测试文件夹,其中包含与目录中找到的类相对应的测试类(目标是使测试类保持接近他们测试的类)

我的问题是:我如何(或应该)阻止在发布中编译/包含测试类? 我的意思是,如果我设法获得大量的测试覆盖率,那么将会有大量新的测试代码进行编译,这对于应用程序本身来说是无用的。我们(我们应该)在发布版本中排除此代码吗?通常的做法是什么(如果有的话)?

1 个答案:

答案 0 :(得分:1)

如果您正在使用CMake,则可以在CMakeLists中定义当前版本中使用的文件。

在同一个CMake中,您可以定义包含测试文件的其他目标。文件的位置无关紧要,它们可以与您的代码位于同一位置