我想在我的代码中使用QTest宏QCOMPARE,但是我收到了错误。
QTestString.h
#ifndef QTESTSTRING_H
#define QTESTSTRING_H
#include <QtCore/QString>
#include <QtTest/QtTest>
class TestqstringTest : public QObject
{
Q_OBJECT
public:
TestqstringTest();
private slots:
void testCase1();
};
#endif // QTESTSTRING_H
QTestString.cpp
#include "QTestString.h"
TestqstringTest::TestqstringTest()
{
testCase1();
}
void TestqstringTest::testCase1()
{
QString str = "Hello";
QCOMPARE(str.toUpper(),(QString)"hELLO");
}
的main.cpp
#include "QTestString.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
TestqstringTest *test = new TestqstringTest();
return a.exec();
}
但是,我收到以下错误:
ASSERT:文件qtestlog.cpp中的“QTest :: testLogger”,第266行程序 意外地完成了。
答案 0 :(得分:1)
我找到了答案,您必须使用int QTest::qExec ( QObject * testObject, int argc = 0, char ** argv = 0 )
执行它,然后正确输出测试日志。