2015-10-19 18 views
5

oluşturmak için nasıl Birim-Testi oluşturmak zorunda.bir Qt-Hızlı Testi

Ama önce, hep şeffaf olsun ne yapacağını temizleyin. Bir QtQuick2-App yazılı ve şimdi ben GUI ile Birim Testleri yapmak istiyorum. GUI ile Birim Testleri için adımlar nelerdir? Qt belgelerini okuduktan sonra, test ile başlamak için herhangi bir fikir oluşturamadım.

Umut biri bana yardımcı olabilir.

Düzenleme: I (main.cpp artık yorumların olan) benim Projesi tst_button.qml ve tst_test.cpp ekledikten sonra, bazı testler başardı. Bu doğru mu, yoksa sadece Testler için yeni bir proje oluşturmalı mıyım? Eğer evet ise, ne tür bir projeye ihtiyaç vardır? Ve son soru: Örneğin, düğmelere basmak için MainForm'umu oluşturmam gerekir mi?

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] ​​'a bir göz atın (http://doc.qt.io/qt-5/qml-qttest-testcase.html#details) – folibis

+0

Sadece bir * .qml dosyasını projeme eklerim ve benim kodumla mı? Eğer evetse, teste başlamak için ne yapmam gerekiyor? – RefMa77

cevap

5

Testing and Debugging listeler iki yer

QML kod birimi testleri için bir çerçeve, ama bu QML mevcut değildir C++ API erişim gerektiğinde için genellikle daha iyidir.

Projeme bir * .qml dosyası ekledim ve kodumla doldurmuyum? Eğer evetse, teste başlamak için ne yapmam gerekiyor?

sen (O aracı Qt kendisi tarafından belgelenmiş değil neden hiçbir fikrim yok) qmltestrunner kullanmayı planlıyorsanız sürece ilk testleri ayrı bir proje yapmak gerekir.

Qt Quick Testi belgelerine ait Running Tests bölümü bir test oluşturup kullanmaya başlamanız nasıl ayrıntıları.


I (main.cpp artık yorumların olan) benim Projesi tst_button.qml ve tst_test.cpp ekledikten sonra, bazı testler başardı. Bu doğru mu, yoksa sadece Testler için yeni bir proje oluşturmalı mıyım? Uygulamanız saf QML ise ve yalnızca qmlscene ile çalıştırılmak isteniyorsa, örneğin, bu şekilde yapılırsa, bu işlem düzgün yapılır. Ancak, uygulamanızı dağıtmayı/göndermeyi düşünüyorsanız, muhtemelen uygulama ve testler için ayrı projeler yapmak anlamına gelen bir yürütülebilir dosyaya sahip olmanız gerekir. evet, projenin ne tür gerekiyorsa

?

SUBDIRS projenize sahip olabilirsiniz, böylece testleriniz ve uygulamanın kendisi bir kerede Qt Creator'da açılabilir. Böyle bir şey:

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

Ve son soru: Ben mesela düğmelerine basarak benim MainForm kurmak gerekir mi?

sayılı .ui feature sadece Qt Creator daha kolay Qt Quick Designer ile Qt Quick UI'lerini tasarım yapmak belirli kısıtlamalar uygulamak sağlayan bir formattır. MainForm.ui.qml bu nedenle sadece bir kolaylık. QML'de zaten var olan bir bileşeniniz varsa, bunun örneklerini oluşturabilir ve test edebilirsiniz.

+0

Desteğiniz için teşekkürler, düzenlemelerime bir göz atabilir misiniz? – RefMa77