首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将单元测试添加到QMake项目,而不将源代码移动到子目录

是一种常见的需求,可以通过以下步骤实现:

  1. 创建一个单元测试目录:在项目根目录下创建一个名为"tests"的目录,用于存放单元测试相关的文件。
  2. 添加单元测试文件:在"tests"目录下创建一个名为"test.pro"的文件,用于配置单元测试项目。在该文件中,可以使用TEMPLATE指令指定项目类型为"app",使用CONFIG指令添加所需的配置选项,例如testcase用于启用Qt的测试框架。
  3. 配置单元测试项目:在"test.pro"文件中,使用SOURCES指令添加单元测试源文件,这些文件通常以"test_"为前缀命名。例如,如果要添加一个名为"test_example.cpp"的单元测试文件,可以在"test.pro"中添加以下内容:
代码语言:txt
复制
SOURCES += test_example.cpp
  1. 链接源代码:为了在单元测试中访问源代码,需要将源代码目录添加到"test.pro"文件中的INCLUDEPATHLIBS指令中。例如,如果源代码目录为"src",可以添加以下内容:
代码语言:txt
复制
INCLUDEPATH += ../src
LIBS += -L../src -l<library_name>

其中,<library_name>是源代码编译生成的库文件名。

  1. 构建和运行单元测试:使用QMake工具构建单元测试项目。在项目根目录下打开终端或命令提示符,执行以下命令:
代码语言:txt
复制
qmake tests/test.pro
make

这将生成一个可执行文件,用于运行单元测试。

  1. 运行单元测试:执行生成的可执行文件,运行单元测试并查看结果。可以通过以下命令运行单元测试:
代码语言:txt
复制
./test

单元测试的添加可以帮助开发人员验证代码的正确性,提高代码质量和可维护性。它可以在开发过程中及时发现和修复bug,减少后期调试和维护的工作量。

腾讯云提供了一系列与云计算相关的产品,例如云服务器、云数据库、云存储等。这些产品可以帮助开发人员在云环境中进行开发、测试和部署。具体推荐的产品和产品介绍链接地址可以根据实际需求和使用场景进行选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

qmake:变量手册

dont_recurse:支持当前子项目的 qmake 递归。 no_include_pwd:不将当前目录添加到 INCLUDEPATHS。...例如,以下定义将生成带有 .myframework 扩展名的框架: QMAKE_BUNDLE_EXTENSION = .myframework 54、QMAKE_CC 指定在构建包含 C 源代码的项目时将使用的...64、QMAKE_CXX 指定在构建包含 C++ 源代码的项目时将使用的 C++ 编译器。...使用此变量指定的每个子目录都必须包含其自己的项目文件。 建议每个子目录中的项目文件与子目录本身具有相同的基本名称,因为这样可以省略文件名。...支持的修饰符是: .subdir:使用指定的子目录而不是 SUBDIRS 值。 .file:明确指定子项目 pro 文件。 不能与 .subdir 修饰符一起使用。

3.9K20

qmake手册(Qt5.9.3)

你需要做的第一件事是添加行,告诉qmake关于作为开发项目一部分的源文件和头文件。 我们将首先将源文件添加到项目文件中。要做到这一点,你需要使用SOURCES变量。...该文件被添加到项目中的其他源文件。此外,qmake将执行depend_command来生成依赖信息,并将这些信息放在项目中。...qmake将使用它来确定相关的链接信息,特别是将值添加到应用程序项目文件的DEFINES列表以及LIBS中。...例如,下面的定义将导致一个带有.myframework扩展的框架: QMAKE_BUNDLE_EXTENSION = .myframework QMAKE_CC 指定构建包含C源代码的项目时将使用的C编译器...支持的修饰符是: 修改 影响 .subdir 使用指定的子目录而不是SUBDIRS值。 .file 明确指定子项目专业文件。不能与.subdir修饰符一起使用。

5.8K20
  • 翻译qmake文档(三) Creating Project Files

    每一个子目录必须包含它自己的项目文件。...当使用subdirs模板时,qmake生成一个makefile用来检查每一个子目录,处理在子目录里找到的工程文件,并执行平台的make 工具生成新的Makefile。...你的项目文件将包含下边的代码: CONFIG += qt debug      注意:你必需使用"+=",不能使用"=",不然qmake将不能为使用Qt的配置确定哪些设置是你的应用程序需要的。...下面的代码将导致最小的Qt项目构建: QT -= gui # Only the core module is used....声明其它库      除了Qt支持的库,你可以把其它的库添加到工程里,你必需在工程文件里指定它们。      qmake可以查找库所在的路径,及特定库链接可以被添加到LIBS变量的值列表。

    95360

    带你认识 flask 优化应用结构

    之后,我将blueprint创建添加到app/errors/__init__.py模块,并在创建应用实例之后,将blueprint注册到app/__init__.py。...我已决定将模板移动到应用模板目录的子目录中,以便所有模板都位于一个层次结构中,但是如果你希望在blueprint中包含属于自己的模板,这也是支持的。...我还需要修改两个错误模板的路径,因为它们被移动到了新errors子目录。...我还将模板移动到一个子目录中,以将它们与应用的其余部分分开,就像我对错误页面所做的那样。 在blueprint中定义路由时,使用@bp.route装饰器来代替@app.route装饰器。...这不会有什么问题,因为我已将其他两个blueprint中的模板移动到子目录中了 06 应用工厂模式 正如我在本章的介绍中所提到的,将应用设置为全局变量会引入一些复杂性,主要是以某些测试场景的局限性为形式

    1.5K20

    qmake:高级用法

    添加到 CONFIG 变量后,qmake 将在完成解析项目文件后搜索上面列出的位置以查找 myfeatures.prf 文件。...然后将其附加到安装列表中: INSTALLS += documentation qmake 将确保将指定的文件复制到安装目录。...如果将内置安装集附加到 INSTALLS 变量并且不指定文件或额外成员,qmake 将决定需要复制的内容。当前,支持 target 和 dlltarget 这两个内置安装集。...启用此选项后,qmake 将创建一个以 .prl 结尾的文件,该文件将保存有关库的一些元信息。这个元文件就像一个普通的项目文件,但只包含内部变量声明。...qmake 将使用它来确定相关的链接信息,特别是将值添加到应用程序项目文件的 DEFINES 和 LIBS 列表中。

    1.9K10

    Hello Qt——QMake用户指南

    A、创建Visual Studio工程文件 使用Visual Studio编写Qt应用程序的开发人员可以使用Qt商业版提供的Visual Studio集成工具,而不必担心如何管理项目依赖关系。...若要指定静态数据支持,将其添加到项目文件中: TARGET.EPOCALLOWDLLDATA = 1 默认值为0 B、栈和堆大小 Symbian平台使用预定义大小的堆栈和堆。...等效于下列代码: MY_DEFINES = $${DEFINES} 第二种写法允许将变量的内容追加到另一个值,而不必用空格分隔这两个值。...注意:默认,对于给定项目,qmake生成的每个MakeFile文件都会写入消息。...由于VARIABLE也可以被版本化,可以在较旧版本的qamke中设置一个值,而较新版本将检索此值。但是,如果在较新版本的qmake设置VARIABLE,将不能再旧版本使用这个值。

    6.4K20

    使用Setup和tear Down方法执行测试

    /autoload 使用/autoload=dir从^UnitTestRoot目录的子目录“dir”加载测试。 /loadudl 从.cls而不是XML文件加载测试。...例4: USER>Do ##class(%UnitTest.Manager).RunTest("mytests:MyPackage.Tests", "/noload/nodelete") 不将测试加载到...如果测试失败,该方法将继续执行其余的测试方法,但将在测试完成时中断。因此,如果从终端执行,则终端将进入调试模式。...将单元测试添加到MyPackages.Tests,用于测试以下各项: 该查询返回指定ContactType的正确ID值数量。为此,必须正确初始化数据库。...请注意,添加此测试不应破坏在完成教程正文中的示例时添加到MyPackage.Tests中的测试。因此,必须以正确的方式初始化和恢复数据库。

    55620

    Qt | ubuntu20.04安装Qt6.5.3并创建一个demo完整教程(涉及诸多开发细节,商用慎重)

    【1】个人学习开发随便用,最好用社区版【2】个人商用,使用LGPLv3协议,公开源代码,就不会收到律师函【3】企业商用,最好联系Qt官方购买,再没盈利之前可能不会收到律师函,但你赚大钱了那就不好说了【协议...【1】点击展开【2】在全部里面往下滑,就找到了【3】右键点击Qt Creator可以添加到收藏夹,这样每次开机都方便打开。...09、创建个app>>>1、点击创建项目2、选择如下3、必须是英文目录4、未来的主流不在是qmake,而是cmake,所以我们选择cmake构建项目5、下一步6、这里有个语言,很多人不知道,因为Qt是面向全球的嘛...2.更新环境变量:如果希望使用简单的qtcreator命令启动,可以将Qt Creator的可执行文件路径添加到PATH中。.../Qt/Tools/QtCreator/bin// 我的设置export PATH=$PATH:/home/whois/qt6/Tools/QtCreator/bin/// 打开~/.bashrc 滑动到最底部

    1.6K10

    VS2010编译Qt5.4.0静态库

    当然,如果是程序员之间会比较方便,如果别人的机子也安装了Qt,并且设置了环境变量,那么也可以不将公共的DLL附在发布的程序中。但是,这样显然还是不方便。...vcxproj VCSOLUTION_EXTENSION = .sln VCPROJ_KEYWORD = Qt4VSv1.0 load(qt_config) 修改红色部分,将MD...运行: 看一下生成的程序信息: 16、用VS打开项目 VS编译项目: 编译输出如下: 1>—— 已启动生成: 项目: StaticTest, 配置: Debug Win32 —...1> 1>已用时间 00:00:05.15 ========== 生成: 成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ========== 注意:此时用VS生成的项目还是用的动态库,因为未将静态库添加到...同上方法,将编译好的静态库也添加到VS设置中的Qt版本中: 然后,右键项目,Qt Project Settings 编译: 1>—— 已启动生成: 项目: StaticTest

    27810

    基于NXP i.MX28 MPU的疫情监控平台2-Qt环境搭建

    Qt/E 所面对的硬件平台较多,当开发人员需要在某硬件平台上移植 Qt/E 时,需要下载Qt 源代码,利用交叉编译器编译出 Qt 库。...3.1 主机搭建嵌入式Qt环境 搭建一个最基本的Qt环境,需要两个东西:qmake和编译器。编译器用的是交叉编译器,我们在第一节的教程中,已经介绍了,并且已经把交叉编译器的路径添加到了环境变量。...-v 如果本机有多个qmake,那么一定要把嵌入式qmake路径添加到环境变量最前面,否则不能识别 ?...官方的下载链接里,只提供了Linux版本的Qt5,而如果想安装Linux版本的Qt4,需要自己使用源码进行编译。...this->resize(width, height); //设置窗口大小为屏幕的1/3 // this->resize(width/3, height/3); //窗口位置移动到左上角

    2.8K60

    Qt图形库-QCustomPlot

    在出现的文件对话框中,选择qcustomplot.h和qcustomplot.cpp文件,将它们添加到您的项目中。 完成后,您的项目结构和.pro文件应如下所示: ?...现在,该项目可以使用QCustomPlot。 将常规QWidget放在表单上的所需位置。 右键单击它,然后单击 Promote to…。 ?...点击添加,将QCustomPlot添加到提升的类列表中,最后点击提升,将窗体上的QWidget变成QCustomPlot。 ?...将QCustomPlot作为.so/.dll动态库使用 使用动态库意味着不将.h/.cpp文件包含到您的项目中,而是与外部qcustomplot.so(GNU/Linux)或qcustomplot.dll...运行示例 下载部分中的QCustomPlot.tar.gz软件包包含示例项目,这些项目已准备好进行编译。 只需将整个程序包提取到一个新目录,在示例目录中导航并运行qmake即可; 制作。

    2.4K10

    隆重介绍!CICD手下的开源界六大金刚

    它不需要运行Docker守护程序来执行操作 我们使用skopeo只要从各种存储机制复制图像 示例: 可以将图像从一个注册表复制到另一个注册表而无需特权用户 检查远程图像的属性,包括图层,而不将图像拉到主机...使用重新创建部署策略而不是滚动来设置Nexus。 Nexus需要大量内存。 将内存请求设置为1Gi,将内存限制设置为2Gi。...由于您正在将容器推入OpenShift Container Registry,因此您需要选择一个您获得授权的项目 - 最容易选择的是Jenkins项目。 您还需要在标记中使用当前版本号。...单击Add Pod Template并选择Kubernetes Pod Template将另一个pod模板添加到Jenkins。 ? 确保如下配置 ? ? 单击屏幕底部的“保存”。...运行单元测试:确保仔细检查构建的输出,以验证您的Maven依赖项来自Nexus而不是公共Internet存储库。 ? ? ? 运行Maven部署测试 mvn -s .

    4.3K30

    qmake介绍

    而且这一过程都在编辑一个文件来实现,qmake将每一个项目文件中的信息展开成一个Makefile,这一步是在编译和连接过程中必须的 关于pro文件 项目是pro文件所描述的,qmake使用这个文件中的信息来构建每一个项目...预编译头文件 在大型的项目中,你可以设置预编译头文件来提高项目的编译速度,详细的请看 Using Precompiled Headers 让我们开始试试吧 这个教程将叫你qmake的基础,下面的几个子章节将简单介绍下...变量 在项目文件中,变量通常是包含一串字符串,在最简单的项目中,这些变量告诉了qmake有关于配置的选项,或者一些在构建过程中的路径 qmake在每一个pro文件中寻找包含的变量,这些内容将决定应该向...用它来生成makefile,在之前的章节中讲过, console 是添加到现有的CONFIG变量中的 变量 描述 CONFIG 项目的基本配置选项 DESTDIR 存放库文件和二进制文件的目录 FORMS...pro文件,并且运行平台的 make工具在新创建的Makefile上,SUBDIRS变量用来包含一系列的子目录 常规配置属性 变量 CONFIG 指定了项目所需要的配置的选项和特征 项目可以在release

    1K10

    【QT】QT入门

    扩展插件、QtCreator自身插件 其他项目 可以创建单元测试项目、Qt4设计师自定义控件、子目录项目等 Non-Qt-Project 非QT项目,可以创建纯C/C++项目 Import Project...就是选择文件保存的位置,注意这个位置一定要全英文 (3)选择构建系统 qmake:是一个构建工具,用于自动生成makefile文件,支持跨平台构建,qmake编辑的是一个后缀为.pro的文件...,对象树也是一种树形结构,通过对象树我们可以对树上的对象进行统一的析构,挂载在对象树上的内容才能被窗口显示 按钮默认在窗口左上角 (2)可视化操作实现 双击打开widget.ui文件,将Push Button...,会看到QObject的构造函数接收一个QObject指针作为参数,这个参数就是parent,也就是父类指针 在创建QObject对象时,可以提供一个其父对象,我们创建的这个QObject对象会自动添加到其父对象的...>setParent(this); } Widget::~Widget() { qDebug() << "Widget析构函数调用"; } 这里使用qDebug的原因是cout打印是GBK,而控制台是按照

    43410

    万字总结编译利器CMake,从入门到项目实战演练

    了解示例项目中各个主题如何协同工作将非常有帮助。示例的教程文档和源代码可在CMake源代码树的Help/guide/tutorial目录中找到。每个步骤都有其自己的子目录,其中包含可以用作起点的代码。...可执行文件可以使用此库,而不是使用编译器提供的标准平方根函数。 在本教程中,我们将库放入名为MathFunctions的子目录中。...例如,要在“调试”模式下运行测试,请从构建目录(而不是“调试”子目录!)中使用ctest -C Debug -VV。或者,从IDE构建RUN_TESTS目标。...2.3多个目录,多个源文件 本小节对应的源代码所在目录:Demo3。 现在进一步将 MathFunctions.h 和 MathFunctions.cc 文件移动到 math 目录下。 ....转换 autoconf 测试 qmake qmake converter 可以转换使用 QT 的 qmake 的工程。

    1.3K00
    领券