QTest как протестировать MainWindow
Решил разобраться с QTest. Создал простейший проект (FirstTest) с подпроектами: 1 подпроект (FirstProject) - простейшая прога, 2 подпроект (test) - для тестирования. Но при компиляции получаю ошибку: \firstproject\mainwindow.cpp:2: ошибка: ui_mainwindow.h: No such file or directory.
Подскажите, что я делаю не так, а то какой-то осмысленной информации по QTest мало, но хочется в этом разобраться.
TEMPLATE = subdirs SUBDIRS += \ Test/Test.pro \ firstproject/firstproject.pro
В FirstProject *.pro файл не менял.
В MainWindows добавил 1 функции для тестирования:
int MainWindow::addNumber(int a, int b) { return a+b; }
В Test.pro вписал следующее:
QT += testlib QT += gui QT += widgets CONFIG += qt warn_on depend_includepath testcase TEMPLATE = app HEADERS += \ ../firstproject/mainwindow.h SOURCES += \ ../firstproject/mainwindow.cpp tst_test_mainwindow.cpp
В классе теста написал следующее:
#include <QtTest> #include <QCoreApplication> // add necessary includes here #include "../firstproject/mainwindow.h" Q_DECLARE_METATYPE(MainWindow) class Test_MainWindow : public QObject { Q_OBJECT public: Test_MainWindow(); ~Test_MainWindow(); private slots: void initTestCase(); void cleanupTestCase(); void test_case1(); }; Test_MainWindow::Test_MainWindow() { } Test_MainWindow::~Test_MainWindow() { } void Test_MainWindow::initTestCase() { } void Test_MainWindow::cleanupTestCase() { } void Test_MainWindow::test_case1() { MainWindow *mw = new MainWindow(nullptr); QCOMPARE(mw->addNumber(2, 4), 6); } QTEST_MAIN(Test_MainWindow) #include "tst_test_mainwindow.moc"
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.Do you like it? Share on social networks!
- Akiv Doros
- Nov. 11, 2024, 2:58 p.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:50points,
- Rating points-4
- molni99
- Oct. 26, 2024, 1:37 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:80points,
- Rating points4
- molni99
- Oct. 26, 2024, 1:29 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:20points,
- Rating points-10
В проекте с тестами не видно упоминания ui
Спасибо большое.
Дописал в test.pro, такую строчку:
убрав из cpp теста Q_DECLARE_METATYPE(MainWindow) и поправив test_case1(),на:
Все заработало.