大型Qt项目的单元测试

西蒙

我有一个相当大的Qt GUI项目,不幸的是,它缺少适当的单元测试。

我打算为每个课程建立一个带有测试源文件的测试项目。

我浏览了很多Qt的官方文档,但是还存在一些问题:

  • 如何创建测试套件?看来所有文档和教程仅涵盖编写一项测试,但是如何有效捆绑单元测试?
  • 如何将测试执行集成到Qt Creator中?也许在构建后的步骤中运行测试会很有趣?
  • 我应该将所有正常的源文件添加到测试项目中还是可以创建静态库?

任何指向涵盖较大Qt项目的提示测试的教程的指针都将受到高度赞赏。

这是您的App LLC

我没有很多时间在Qt中进行完善的单元测试。但是,我确实弄清楚了如何使主管道正常工作。我希望这可以为您提供帮助,尽管您可能会比学习《写作单元测试》指南做得更好

如何创建测试套件?似乎所有文档和教程仅涵盖编写一项测试,但是如何有效捆绑单元测试?

您可以通过将单元测试(对象上的插槽)收集到对象中并组成这些对象来组织“套件”。

test_example.pro

TARGET = test_example
TEMPLATE = app
CONFIG += testcase
QT += testlib core

... INCLUDEPATH, SOURCES, HEADERS, etc...

main.cpp

#include <QtTest/QtTest>
#include "MainTest.h"

// This macro introduces an event loop
QTEST_MAIN(MainTest)

主测试

class MainTest : public QObject
{
  Q_OBJECT

private slots:

  // Each slot is a unit test
  void init()
  {
  }

  // Create a "test suite" by bundling tests into objects
  void runFirstSuite()
  {
    FirstSuiteUiTest first;
    first.test();  // runs 10 tests

    FirstSuiteIoTest second;
    second.test();  // runs 999 tests

    ...
  }

  void SecondSuite() 
  {
    QFAIL("This suite is not really a suite, and it always fails");
  }
};

您还可以将测试组织到物理文件结构中。我使用subdirs项目作为根.pro文件,因此可以构建构件(动态和静态档案,二进制文件)并运行许多单元测试集合。

TEMPLATE = subdirs
CONFIG += ordered

SUBDIRS += src/core
SUBDIRS += src/some_dll
SUBDIRS += src/test/awesome_core_test_1 #Holds many suites
SUBDIRS += src/test/awesome_core_test_2 #Holds many other suites!

core.depends = core
awesome_core_test_1.depends = core
awesome_core_test_2.depends = core

因此,通过将单元测试组织到对象组成和物理文件中,您可以实现某种粒度的组织。可能有更好的方法或不同的方法,但是我不确定。

如何将测试执行集成到Qt Creator中?也许在构建后的步骤中运行测试会很有趣?

添加CONFIG += testcase到您的.pro文件中。这将创建一个构建目标。通过运行来调用构建和测试make check

我应该将所有正常的源文件添加到测试项目中还是可以创建静态库?

就像在其他任何项目中一样,您都可以这样做。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

大型项目的正确单元测试

来自分类Dev

Swift项目的单元测试类

来自分类Dev

VSTO项目的单元测试

来自分类Dev

Selenium项目的单元测试

来自分类Dev

vb.net项目的单元测试

来自分类Dev

在C ++单元测试中编译C项目的问题

来自分类Dev

vb.net项目的单元测试

来自分类Dev

NHibernate:如何从单元测试项目中引用主项目的装配?

来自分类Dev

单元测试项目的物理布局是什么?

来自分类Dev

如何使src / test / resources文件可用于其他项目的单元测试?

来自分类Dev

如何创建用于在存储库中添加项目的单元测试?

来自分类Dev

单元测试范围和测试大型组件

来自分类Dev

如何在Qt中设置单元测试-Visual Studio 2013项目

来自分类Dev

未构建 subdir 项目中的单元测试 [Qt/C++]

来自分类Dev

对使用RTOS的项目进行单元测试

来自分类Dev

InMemoryConnection用于单元测试Elasticsearch项目

来自分类Dev

如何对 vsix 项目进行单元测试?

来自分类Dev

Intellij 16-单元测试未识别为Android模块项目的一部分

来自分类Dev

如何将同一项目的单元测试拆分为单独的程序集?

来自分类Dev

Qt单元测试-仅显示失败的测试

来自分类Dev

.NET项目中单元测试和验收测试的实现

来自分类Dev

Qt-Creator是否支持单元测试?

来自分类Dev

QT单元测试MoC“未解析的外部符号”

来自分类Dev

麻烦单元测试附加项目中的帮手

来自分类Dev

运行并将单元测试添加到nodejs项目

来自分类Dev

单元测试角度/离子项目

来自分类Dev

如何仅在Hybris项目中运行单元测试?

来自分类Dev

ConfigurationManager.AppSettings在单元测试项目中返回Null

来自分类Dev

删除Web API中的项目单元测试

Related 相关文章

热门标签

归档