5

我有一个不使用 Qt 的 C++ 项目。我使用 Qt Creator 作为我的 IDE,因为它非常方便。

我在这里阅读了 Qt Creator 中的单元测试,我认为 Qt Test 似乎相当不错。有没有办法在我的非 Qt C++ 项目中使用 Qt Test?

请注意,我的 PC 中安装了 Qt 库,我正在使用这些库进行编程。但我不希望我发布的编译程序依赖于 Qt 库。

此外,我在使用 Visual Studio 时喜欢的一个功能是每次构建项目时都会自动运行测试。我可以对 Qt Creator 做同样的事情吗?

顺便说一句,如果你能推荐另一个我可以在 Qt Creator 中轻松使用的单元测试框架,那也很好。

4

3 回答 3

3

您还可以使用 GTest 在 Qt Creator 中对(非 Qt)C++ 代码进行单元测试:

https://github.com/google/googletest/

使用这个很棒的 QtCreator 插件:

https://github.com/OneMoreGres/qtc-gtest

我从 QTest 切换到 GTest(用于测试 Qt 应用程序)有几个原因,例如有一个很好的图形输出和使用模拟框架(GMock)的能力。

于 2015-06-30T11:53:20.063 回答
2

从未真正尝试过在 QtCreator 中对非 qt 代码进行单元测试,但代码的 Qt 特性并不重要。我就是这样去的:

  1. 拿你正常的非 qt 项目
  2. 添加subdir类型的父项目以像 Visual Studio 解决方案一样工作。
  3. 在parent下再添加一个项目,即qt测试项目,即

    QT  += testlib
    CONFIG += qtestlib
    
  4. 找到一种在两者之间共享资源的方法。您可以使用它们的相对路径添加源文件,创建静态库,或者为非 qt 和 qttestlib 项目使用pri文件(项目头文件)。

使用此配置,通过构建顶级项目,您将构建您的正常项目并运行测试。

subdirctrl+获得的项目模板N不是很有帮助。但是顶层项目文件可以简单到

include (commonsrc.pri)

TEMPLATE = subdirs
CONFIG  += ordered

SUBDIRS += appdir
SUBDIRS += testingdir

这就是我的项目的最高级别。

为了避免头痛,将文件夹层次结构与子目录层次结构相匹配。例如

solutiondir
     commondir
     appdir
     testingdir
     commonsrc.pri <--- allow you to write commondir\mycpp.cpp in any project
于 2015-06-29T13:45:55.120 回答
0

你可以试试 Boost 的单元测试框架

http://www.boost.org/doc/libs/1_55_0/libs/test/doc/html/index.html

于 2015-06-30T12:08:09.433 回答