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
1 ответ
Попробуйте переименовать имя класса в соответствии с именем файла. В вашем случае SampleTest => TestGui
QtCreator пытается найти соответствующее определение класса. Если нет, он игнорирует создание цели ".moc:" в проектах Makefile.