Qt Creator中的单元测试(非Qt)C++代码
Unit testing (non-Qt) C++ code in Qt Creator?
我有一个C++项目不使用Qt。我使用QtCreator作为我的IDE,因为它非常方便。
我在这里读到了QtCreator中的单元测试,我认为Qt测试看起来很好。有没有一种方法可以在我的非Qt C++项目中使用Qt Test?
请注意,我的电脑上安装了Qt库,我正在用它来编程。但我不希望我发布的编译程序依赖于Qt库。
此外,我在使用Visual Studio时喜欢的一个功能是,每次构建项目时,测试都会自动运行。我可以用Qt Creator做同样的事情吗?
顺便说一句,如果你能提出另一个我可以在QtCreator中轻松使用的单元测试框架,那也没关系。
您也可以使用GTest:在Qt Creator中对(非Qt)C++代码进行单元测试
https://github.com/google/googletest/
使用这个伟大的QtCreator插件:
https://github.com/OneMoreGres/qtc-gtest
我从QTest切换到GTest(用于测试Qt应用程序)有几个原因,例如有一个很好的图形输出和使用模拟框架(GMock)的能力。
实际上从未尝试在QtCreator中对非qt代码进行单元测试,但代码的qt性质无关紧要。我会这么做:
- 以正常的非qt项目为例
- 添加subdir类型的父项目,使其行为与visual studio解决方案类似
-
在父项下添加另一个项目,这是一个qt测试项目,即
QT += testlib CONFIG += qtestlib
-
找到一种在两者之间共享资源的方法。您可以使用源文件的相对路径添加源文件,创建静态库,或者为非qt和qttestlib项目使用
pri
文件(项目头文件)。
使用此配置,通过构建顶级项目,您将构建正常项目并运行测试。
对于subdir
项目,您从ctrl+N获得的模板并不是很有用。但是顶级项目文件可以像一样简单
include (commonsrc.pri)
TEMPLATE = subdirs
CONFIG += ordered
SUBDIRS += appdir
SUBDIRS += testingdir
这就是我的一个项目的最高级别。
为了避免麻烦,请将文件夹层次结构与子目录层次结构相匹配。例如
solutiondir
commondir
appdir
testingdir
commonsrc.pri <--- allow you to write commondirmycpp.cpp in any project
您可以尝试Boost的单元测试框架
http://www.boost.org/doc/libs/1_55_0/libs/test/doc/html/index.html
- Qt VTK交互风格的信号到小部件
- QT在错误的班级中寻找空位
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 如何在Qt C++中更改光标
- 如何在MS Visual Studio 2019中运行QT UI
- QT通过C++添加映射QML项目
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用Qt C++计算类似Git的SHA1哈希
- Qt focusObjectChanged example?
- 如何在cpp文件之间切换窗口?在Qt中
- Qt和C++:将QLineEdit添加到QTabWidget中
- 从数据库实时显示QT c++中的数据
- Qt Quick-如何仅从c++代码与qml属性交互
- 无法使用Qt Creator在Windows中构建yaml-cpp
- 如何在Qt中取消捕获字符串
- Qt SQLite没有查询或参数计数不匹配
- Qt SQlite无法创建表