qtest: нет правил для создания целевой ошибки при компиляции теста

Я работал над созданием модульного теста. Мне нужно изучить это, чтобы протестировать наши объекты графического интерфейса. До сих пор этот сайт отвечал на многие вопросы (большинство из них были заданы и на них были даны ответы ранее). Однако сейчас я нахожусь в точке, где я получаю сообщение об ошибке, и я не могу найти ссылку, которая поможет мне ее решить. Я получаю «Нет правила для создания цели« TestGui.cpp », необходимой для« TestGui.o ». Стоп». Может ли кто-нибудь сказать мне, как это исправить и скомпилировать мой тест? Это моя первая попытка тестирования...

Это мой тестовый файл-

#include <QString>
#include <QObject>
#include <QtTest>
#include <QLineEdit>
#include <QWidget>
#include <QApplication>

class SampleTest : public QObject
{
    Q_OBJECT

public:
    SampleTest();

private Q_SLOTS:
    void initTestCase();
    void cleanupTestCase();
    void TestGui();
    void TestQstring();
};

SampleTest::SampleTest()
{
}

void SampleTest::initTestCase()
{
}

void SampleTest::cleanupTestCase()
{
}

void SampleTest::TestGui()
{ 
    QLineEdit line_edit;

    QTest::keyClicks(&line_edit, "hello world");

    QCOMPARE(line_edit.text(), QString("hello world"));
}

void SampleTest::TestQstring()
{
    QString str = "hello world";
    QCOMPARE(str.toUpper(), QString("HELLO wORLD"));
}

QTEST_MAIN(SampleTest)

#include "SampleTest.moc"

Мой файл test.pro здесь -

#-------------------------------------------------
#
# Project created by QtCreator 2015-09-03T09:46:40
#
#-------------------------------------------------

QT       += core widgets gui testlib

TARGET = SampleTest
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app


SOURCES += ../sample_project/TestGui.cpp \
            SampleTest.cpp

HEADERS +=  ../sample_project/TestGui.h

FORMS += ../sample_project/TestGui.ui

DEFINES += SRCDIR=\\\"$$PWD/\\\"

INCLUDEPATH += $$PWD/../sample_project

include(../sample_project/sample_project.pri)

Это мой проект .pro файл -

#-------------------------------------------------
#
# Project created by QtCreator 2015-09-03T09:29:42
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = sample_project
TEMPLATE = app


SOURCES += main.cpp\
        TestGui.cpp \
    TestBox.cpp

HEADERS  += TestGui.h \
           TestBox.h

FORMS    += TestGui.ui \
       TestBox.ui

Файл моего проекта .pri является источником и заголовком для моего проекта -

SOURCES += TestGui.cpp
HEADRES += TestGui.h

person jolema    schedule 04.09.2015    source источник
comment
Я думаю, это означает, что TestGui.cpp не может быть найден, то есть проблема с путем. Кажется, вы бежите из другого места?   -  person user2672165    schedule 04.09.2015
comment
Спасибо. Я только что исправил проблему с путем. Изменение отражено выше. Тем не менее, я все еще получаю сообщение об ошибке. Я заметил, что если я закомментирую последнее включение в свой тестовый файл .pri, он скомпилируется и запустится. однако это не вызывает мое окно из проекта. Я пытаюсь открыть окно и ввести привет, мир в строке Edit.   -  person jolema    schedule 04.09.2015
comment
Хорошо, я понял, что мне нужно внести аналогичные изменения в файл .pri моего проекта. Он компилируется чисто, но теперь моя проблема заключается в том, как заставить его запускать main в моем проекте? Буду искать ответы на сайте. Если у вас есть какие-то идеи, буду рад их услышать. Спасибо еще раз.   -  person jolema    schedule 04.09.2015


Ответы (1)


Попробуйте переименовать имя класса в соответствии с именем файла. В вашем случае SampleTest => TestGui

QtCreator пытается найти подходящее определение класса. Если нет, он игнорирует создание целевого файла ".moc:" в Makefile проектов.

person Vladyslav Savchenko    schedule 07.12.2017