【问题标题】:Not sure how to use QtTest不知道如何使用 QtTest
【发布时间】:2013-03-13 23:10:47
【问题描述】:

我想对我使用 Qt 在 c++ 中完成的一些简单练习进行单元测试。我认为使用 QtTest 似乎是一个合理的起点。

我有一个返回整数的类,我想测试预期结果是否与实际结果相同。

我是否认为我在项目中创建了一个新的 c++ 源文件以用作 QtTest

这就是我所拥有的,但是通过阅读 Qt 文档我无法弄清楚我必须做什么?

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


class ConversionTest : public QObject
{
private slots:
    void testConvert();

};

void ConversionTest::testConvert()
{
    int unit1 = 1, unit2 = 10;
    std::string sUnit1 = "stone", sUnit2 = "pound";
    double expected = 10.8862;
    double actual;

    Conversion c;
    actual = c.convert(unit1, unit2, sUnit1, sUnit2);
    QCOMPARE(expected, actual);
}

QTEST_MAIN (ConversionTest)
#include "conversiontest.moc"

这是我在阅读文档后生成的,但现在我如何运行它并获得(我认为是)显示通过/失败的控制台输出?

任何帮助都会非常感谢

【问题讨论】:

  • 您的课程中缺少 Q_OBJECT 宏。
  • 好的添加了它,没有什么不同仍然没有控制台打开?

标签: c++ qt qttest


【解决方案1】:

您需要使用它创建一个应用程序(QTEST_MAIN(..) 为您构建main 函数),并在.pro 文件中指定CONFIG += qtestlib

当您运行它时,会打开一个控制台,打印出测试结果。

【讨论】:

  • 抱歉不知道你说的应用是什么意思?我是 C++ 新手
  • 我知道QTEST_MAIN 在那里,我只是解释说即使你需要构建一个可执行文件,你也不需要定义一个main(..) 函数,因为宏会为你做。您需要告诉qmake 您正在构建可执行文件(而不是共享库等)的“应用程序”——这仅涉及在.pro 文件中将TEMPLATE 部分设置为“应用程序” .
  • 已经是了?仍然没有任何反应,我的源文件夹中也没有 exe?一些示例代码在这里真的可以帮助我
  • 示例代码无济于事,因为我们仍然不知道出了什么问题。如果您没有 exe,则编译失败或配置错误。使用 .pro 文件和任何编译器输出更新您的问题。
【解决方案2】:

我自己解决了这个问题只是Qt错误代码根本没有问题,由于某种原因它不喜欢我的项目文件在我的项目文件之前位于多个文件夹的文件夹结构中,使用完全相同在新目录中的代码并且它有效? :S

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 2019-11-18
    • 2021-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    相关资源
    最近更新 更多