c++ - 运行 Qt 单元测试

标签 c++ unit-testing qt4

查看Qt's site ,并在 another Stackoverflow answer因为我不想为每个要测试的类创建一个单独的项目,所以我想出了以下代码:

测试字符串.h

#ifndef TESTQSTRING_H
#define TESTQSTRING_H

#include <QtTest/QTest>

class TestQString : public QObject
{
    Q_OBJECT

private slots:
    void toUpper();
};

#endif // TESTQSTRING_H

测试字符串.cpp

#include "testqstring.h"
#include <QString>

void TestQString::toUpper()
{
    QString str = "Hello";
    QCOMPARE(str.toUpper(), QString("HELLO"));
}

主要.cpp

#include "testqstring.h"

int main(int argc, char *argv[])
{
    TestQString testqstring;
    QTest::qExec(&testqstring, argc, argv);
    return 0;
}

但是,我收到以下链接器错误:

...
g++ -headerpad_max_install_names -arch i386 -o tester main.o testqstring.o moc_testqstring.o -F/Library/Frameworks -L/Library/Frameworks -framework QtCore 
Undefined symbols: 
"QTest::qExec(QObject*, int, char**)", referenced from: 
_main in main.o 
"QTest::compare_helper(bool, char const*, char*, char*, char const*, char const*, char const*, int)", referenced from: 
bool QTest::qCompare<QString>(QString const&, QString const&, char const*, char const*, char const*, int)in testqstring.o 
... and more like that ...

我在这里做错了什么?

最佳答案

添加:

CONFIG += qtestlib 

到 .pro 文件让 qmake 链接到 qtest 库。

关于c++ - 运行 Qt 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4643179/

相关文章:

python - Python中 "renaming files"的单元测试

java - 如何将 testng-results.xml 文件保存到 test-output 文件夹以外的不同文件夹?

c++ - Qt:包含 .pri 以使用库 - 不正确的包含

linux - 在 Linux 中通过 QProcess 执行 gzip

python - 如何在 QLineEdit 中同时显示光标和 PlaceholderText?

C++ 使用文件不工作初学者

c++ - 航空公司预订链表程序

c++ - Qt 安装程序框架 : strange license error when updating

c++ - 多重集、映射和 HashMap 复杂度

unit-testing - 使用 Jasmine 进行 Angular2 AngularFire Auth 测试