2011-01-10 138 views
6

看着Qt's site,并且在another Stackoverflow answer,因为我不想为每个类创建我想测试一个单独的项目,我想出了下面的代码:运行Qt的单元测试

testqstring.h

#ifndef TESTQSTRING_H 
#define TESTQSTRING_H 

#include <QtTest/QTest> 

class TestQString : public QObject 
{ 
    Q_OBJECT 

private slots: 
    void toUpper(); 
}; 

#endif // TESTQSTRING_H 

testqstring.cpp

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

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

的main.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 ... 

什么我错在这里做什么?

+1

你不需要连接QTest吗? – 2011-01-10 02:47:26

+0

@Noah你是什么意思? – wrongusername 2011-01-10 02:53:39

回答

10

地址:

CONFIG += qtestlib 

到.pro文件得到QMAKE在QTEST库进行链接。