首页 > 解决方案 > 如何在 Qt 中运行多个测试而不多次调用 QTest::qExec?

问题描述

我有一个包含多个独立库的项目,我希望为每个库创建自己的测试套件。我计划有一个链接所有套件的单个可执行文件,并且能够从 Qt Creator测试窗口运行所有测试或单个测试。怎么做?

基本 Qt 教程仅考虑创建单个测试对象并使用宏之一QTEST_MAINQTEST_APPLESS_MAIN情况QTEST_GUILESS_MAIN

有这样的建议以及手动创建main函数QTest::qExec并多次调用函数的地方。该解决方案不再起作用(或者至少我未能以这种方式解决我的问题),因为该QTest::qExec函数不应被多次调用

对于独立测试应用程序,不应多次调用此函数,因为用于将测试输出记录到文件和执行单个测试函数的命令行选项将无法正确运行。

如何在单个可执行文件中使用多个测试对象?在 Qt 中开发测试的惯用/推荐方法是什么,其中测试不能与单个initTestCase/cleanupTestCase对共享相同的对象?

我将 Qt 5.14.0 与 Qt Creator 4.11.0 + QMake 一起使用。操作系统是 Windows。

笔记!我之前已经问过这个问题,但它被错误地关闭为与如何运行多个 QTest 类重复?. 特别注意我的问题略有不同,并且为另一个问题提供的解决方案不再起作用(但它本可以在 2016 年起作用)。我的问题的关键部分是如何在不QTest::qExec多次调用该函数的情况下实现目标。

标签: c++qtqtestlib

解决方案


推荐阅读