QtTest:moc文件将不会生成

QtTest: moc file will be not generated

本文关键字:moc 文件 QtTest      更新时间:2023-10-16

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

#include <QtTest/QtTest>
class MyTest : public QObject {
    Q_OBJECT
private slots:
    void test() {
        QVERIFY( true );
    }
};
QTEST_MAIN( MyTest )
#include "mytest.moc"

现在我已经创建了一个简单的专业文件来生成可执行文件。但是在构建它时,编译器找不到创建的文件mytest.moc,因为它不是创建的。当我不能手动使用moc编译器时,一切都很好。

专业文件看起来像:

QT +=testlib
TEMPLATE = app
TARGET = unittests
INCLUDEPATH += .
# Input
SOURCES += MyTest.cpp

有人知道我错过了什么吗?我使用的是VS2010、QT5.1和Windows7。

提前感谢,Kim

我在Linux上也遇到过类似的问题。包含的moc文件未重新生成,因此与测试用例不匹配。原因是我混合了影子构建和源代码构建,而影子构建中包含的moc实际上是源代码构建中停滞的moc。

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