QtTest:不会生成moc文件

时间:2013-11-28 09:40:04

标签: c++ qt

我正在尝试使用QTTest构建一个简单的单元测试。文件MyTest.cpp看起来像:

#include <QtTest/QtTest>

class MyTest : public QObject {
    Q_OBJECT

private slots:
    void test() {
        QVERIFY( true );
    }
};

QTEST_MAIN( MyTest )
#include "mytest.moc"

现在我已经创建了一个简单的pro文件来生成可执行文件。但是在构建它时,编译器找不到创建的文件mytest.moc,因为它没有被创建。当我手动插入moc编译器时,一切正常。

亲文件看起来像:

QT +=testlib
TEMPLATE = app
TARGET = unittests
INCLUDEPATH += .

# Input
SOURCES += MyTest.cpp

有没有人有想法,我错过了什么?我使用的是VS2010,QT5.1和Windows7。

提前致谢, 金

1 个答案:

答案 0 :(得分:3)

我在Linux上遇到过类似的问题。包含的moc文件未重新生成,因此与测试用例不匹配。原因是我正在混合阴影构建和源内构建,并且阴影构建中包含的moc实际上是来自源内构建的停滞的。

这种情况下的解决方案是从源内构建中删除moc文件,然后强制重建(清理然后构建)阴影构建中的测试类。它会触发moc文件的重新生成,之后所有测试都会正常运行。