2015-10-19 5 views
5

Мне нужно создать Unit-Test.Как создать тест Qt-Quick

Но сначала я должен понять, что делать. Написано приложение QtQuick2, и теперь я хотел бы сделать Unit-Tests с графическим интерфейсом. Каковы шаги для Unit-Tests с графическим интерфейсом? После прочтения Qt-документов я не мог создать никаких идей для начала теста.

Надеюсь, кто-то может мне помочь.

Edit: Я был в состоянии выполнить некоторые тесты, после добавления tst_button.qml и tst_test.cpp к моему проекту (main.cpp в комментариях сейчас). Правильно ли это, или я должен создать новый проект только для тестов? Если да, какой проект нужен? И последний вопрос: Нужно ли мне наращивать мой MainForm для нажатия кнопок, например?

tst_button.qml

import QtQuick 2.4 
import QtTest 1.0 

Rectangle{ 
    id: myRec 
    property var myMainForm: null 

    TestCase{ 
     name:"ButtonClick" 
     when:windowShown 

     function test_init(){ 
      var createMyWindow = "import QtQuick 2.0; MainForm{id:myForm}" 
      var myMainForm = Qt.createQmlObject(createMyWindow,myRec) 
      myRec.myMainForm = myMainForm 
     } 
     } 
    } 

tst_test.cpp

#include <QtQuickTest/quicktest.h> 
QUICK_TEST_MAIN(test) 
+0

Взгляните на [TestCase] ​​(http://doc.qt.io/qt-5/qml-qttest-testcase.html#details) – folibis

+0

Я просто добавляю * .qml-файл в свой проект и заполняю это с моим кодом? Если да, что мне нужно сделать, чтобы начать тест? – RefMa77

ответ

5

Testing and Debugging списки двумя способами:

Вы можете использовать Qt Test для тестирования Qt Quick приложения, но это как правило, лучше, если вам нужен доступ к API C++, который не доступен в QML.

Я просто добавляю * .qml-файл в свой проект и заполняю его своим кодом? Если да, что мне нужно сделать, чтобы начать тест?

Вам сначала нужно сделать тесты отдельный проект, если вы не планируете использовать qmltestrunner (я понятия не имею, почему этот инструмент не задокументированных самой Qt).

В разделе документации Qt Quick Test содержится подробная информация о том, как пройти тест и запустить его.


я смог запустить несколько тестов, после добавления tst_button.qml и tst_test.cpp к моему проекту (main.cpp в комментариях сейчас). Правильно ли это, или я должен создать новый проект только для тестов?

Если ваше приложение является чистым QML и предназначено, например, для работы с qmlscene, то делать это в порядке. Однако, если вы намерены развернуть/отправить свое приложение, вам, вероятно, понадобится исполняемый файл, что означает создание отдельных проектов для приложения и тестов.

Если да, то какой проект нужен?

Возможно, у вас есть проект SUBDIRS, чтобы ваши тесты и само приложение можно было сразу открыть в Qt Creator. Что-то вроде этого:

myapp.pro 
app/ 
    main.cpp 
    app.pro 
    resources.qrc 
    main.qml 
tests/ 
    tests.pro 
    data/ 
     tst_stuff.qml 

И последний вопрос: мне нужно, чтобы создать свой MainForm для нажатия кнопок, например, делать?

порядка № .ui feature просто формат, который позволяет Qt Creator для обеспечения соблюдения определенных ограничений, чтобы сделать его проще для разработки Qt Quick UIs с Qt Quick Designer. MainForm.ui.qml есть поэтому удобный. Если у вас уже есть существующий компонент в QML, вы можете создать экземпляры этого и протестировать его.

+0

Спасибо за вашу поддержку, не могли бы вы взглянуть на мои правки? – RefMa77