Qt:Документация 4.3.2/qtestlib-manual

Материал из Wiki.crossplatform.ru

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: {{Qt4.3.2_header}} =Руководство по использованию QTestLib<br />= Инфраструктура QTestLib, предоставленая компа...)
 
(1 промежуточная версия не показана)
Строка 2: Строка 2:
=Руководство по использованию QTestLib<br />=
=Руководство по использованию QTestLib<br />=
 +
<div id="qtestlib"></div>
Инфраструктура [[#qtestlib | QTestLib]], предоставленая компанией Trolltech, является инструментом для тестирования Qt приложений и библиотек. [[#qtestlib | QTestLib]] предоставляет полный базовый функционал для тестирования графического пользовательского интерфейса.
Инфраструктура [[#qtestlib | QTestLib]], предоставленая компанией Trolltech, является инструментом для тестирования Qt приложений и библиотек. [[#qtestlib | QTestLib]] предоставляет полный базовый функционал для тестирования графического пользовательского интерфейса.
 +
Содержание:
 +
 +
*[[#qtestlib-features | Возможности QTestLib]]
 +
*[[#qtestlib-api | QTestLib API]]
 +
*[[#using-qtestlib | Использование QTestLib]]
 +
**[[#creating-a-test | Создание теста]]
 +
**[[#building-a-test | Сборка]]
 +
**[[#qtestlib-command-line-arguments | Аргументы командной строки QTestLib]]
 +
***[[#syntax | Синтаксис]]
 +
***[[#options | Опции]]
 +
 +
 +
<div id="qtestlib-features"></div>
===Возможности QTestLib===
===Возможности QTestLib===
[[#qtestlib | QTestLib]]  создано для облегчения написания тестов для Qt  приложений и библиотек:
[[#qtestlib | QTestLib]]  создано для облегчения написания тестов для Qt  приложений и библиотек:
Строка 42: Строка 56:
Замечание: Для высокоуровневых пользовательских графических интерфейсов и приложений, которым необходимо тестирование, читайте [http://www.trolltech.com/products/qt/3rdparty/tools Qt testing products provided by Trolltech partners].
Замечание: Для высокоуровневых пользовательских графических интерфейсов и приложений, которым необходимо тестирование, читайте [http://www.trolltech.com/products/qt/3rdparty/tools Qt testing products provided by Trolltech partners].
-
 
+
<div id="qtestlib-api"></div>
===QTestLib API===
===QTestLib API===
Все открытые методы находятся в пространства имён [[Qt:Документация 4.3.2/qtest | QTest]]. Дополнительно, класс [[Qt:Документация 4.3.2/qsignalspy | QSignalSpy]] предоставляет легкое самонаблюдение для Qt сигналов и слотов.
Все открытые методы находятся в пространства имён [[Qt:Документация 4.3.2/qtest | QTest]]. Дополнительно, класс [[Qt:Документация 4.3.2/qsignalspy | QSignalSpy]] предоставляет легкое самонаблюдение для Qt сигналов и слотов.
-
 
+
<div id="using-qtestlib"></div>
===Использование QTestLib===
===Использование QTestLib===
 +
<div id="creating-a-test"></div>
====Создание теста====
====Создание теста====
Для создания теста переопределите [[Qt:Документация 4.3.2/qobject | QObject]] и добавьте один или несколько закрытых слотов в нем. Каждый закрытый слот является функцией тестом вашего теста. [[Qt:Документация 4.3.2/qtest#qExec | QTest::qExec]]() используется для выполнения всех  функций тестов в объекте тесте.
Для создания теста переопределите [[Qt:Документация 4.3.2/qobject | QObject]] и добавьте один или несколько закрытых слотов в нем. Каждый закрытый слот является функцией тестом вашего теста. [[Qt:Документация 4.3.2/qtest#qExec | QTest::qExec]]() используется для выполнения всех  функций тестов в объекте тесте.
Строка 74: Строка 89:
  };</source>  
  };</source>  
Другие примеры приведены в [[Qt:Документация 4.3.2/qtestlib-tutorial | Учебное пособие по QTestLib]].
Другие примеры приведены в [[Qt:Документация 4.3.2/qtestlib-tutorial | Учебное пособие по QTestLib]].
-
 
+
<div id="building-a-test"></div>
====Сборка====
====Сборка====
Если вы используете <tt>qmake</tt>  в качестве инструмента сборки, добавьте следующустроку в ваш файл проекта:
Если вы используете <tt>qmake</tt>  в качестве инструмента сборки, добавьте следующустроку в ваш файл проекта:
Строка 81: Строка 96:
Смотрите [[Qt:Документация 4.3.2/qtestlib-tutorial1 | Написание тестов]] для получения пояснения как это делается шаг за шагом.
Смотрите [[Qt:Документация 4.3.2/qtestlib-tutorial1 | Написание тестов]] для получения пояснения как это делается шаг за шагом.
-
 
+
<div id="qtestlib-command-line-arguments"></div>
====Аргументы командной строки QTestLib====
====Аргументы командной строки QTestLib====
 +
<div id="syntax"></div>
=====Синтаксис=====
=====Синтаксис=====
Синтаксис выполнения автотеста имеет такую форму:
Синтаксис выполнения автотеста имеет такую форму:
Строка 95: Строка 111:
<source lang="cpp-qt">    /myTestDirectory$ testMyWidget -vs -eventdelay 500</source>  
<source lang="cpp-qt">    /myTestDirectory$ testMyWidget -vs -eventdelay 500</source>  
Запускает функцию тест testMyWidget, выводит информацию о возникновении любого сигнала и ждет 500 милисекунд после  каждой симуляции событий мыши/клавиатуры.
Запускает функцию тест testMyWidget, выводит информацию о возникновении любого сигнала и ждет 500 милисекунд после  каждой симуляции событий мыши/клавиатуры.
-
 
+
<div id="options"></div>
=====Опции=====
=====Опции=====
Общеприняты следующие аргументы командной строки:
Общеприняты следующие аргументы командной строки:

Текущая версия на 10:39, 6 ноября 2008

40px Внимание: Актуальная версия перевода документации находится здесь

__NOTOC__

Image:qt-logo.png

Главная · Все классы · Основные классы · Классы по группам · Модули · Функции

Image:trolltech-logo.png

Содержание

[править] Руководство по использованию QTestLib

Инфраструктура QTestLib, предоставленая компанией Trolltech, является инструментом для тестирования Qt приложений и библиотек. QTestLib предоставляет полный базовый функционал для тестирования графического пользовательского интерфейса.

Содержание:


[править] Возможности QTestLib

QTestLib создано для облегчения написания тестов для Qt приложений и библиотек:


Возможности Детали
Легкий QTestLib содержит порядка 6000 строк кода и 60 экспортируемых символов.
Самодостаточный QTestLib нуждается только в нескольких симоволах из Qt Core библиотеки для non-gui тестирования.
Быстрое тестирование QTestLib не требует запуска специальных тестов; нет специальных регистраций для тестов.
Тестирование управления данными Тестирование может быть выполнено в любое время с разными данными.
Базовое тестирование интерфейса пользователя QTestLib предлогает функционал симуляции сообщений от мыши и клавиатуры.
Дружественность к IDE QTestLib выводит сообщения, которые могут быть интерпретированны в Visual Studio и KDevelop.
Потоко безопасность Отчет об ошибках потоковой безопасности.
Безопасность типов Исчерпывающее использование шаблонов предотвращения ошибок внесенных неявной проверкой типов .
Легкая расширяемость Пользовательские типы могут быть легко добавлены в тестируемые данные и тестовый вывод данных.

Замечание: Для высокоуровневых пользовательских графических интерфейсов и приложений, которым необходимо тестирование, читайте Qt testing products provided by Trolltech partners.

[править] QTestLib API

Все открытые методы находятся в пространства имён QTest. Дополнительно, класс QSignalSpy предоставляет легкое самонаблюдение для Qt сигналов и слотов.

[править] Использование QTestLib

[править] Создание теста

Для создания теста переопределите QObject и добавьте один или несколько закрытых слотов в нем. Каждый закрытый слот является функцией тестом вашего теста. QTest::qExec() используется для выполнения всех функций тестов в объекте тесте.

Дополнительно, нужно добавить четыре закрытых слота, которы не будут выполнять роль функций тестов. Они запускаются структурой тестирования и могут быть использованы для инициализации и очистки любого из тестов или текущей функции теста.

  • initTestCase() выполняется перед запуском первой функции теста.
  • cleanupTestCase() выполняется после выполнения последней функции теста.
  • init() выполняется перед запуском каждой функции теста.
  • cleanup() выполняется после каждой функции теста.

Если initTestCase() вернуо ошибку, значит нет функций тестов, которые могут быть запущены. Если init() вернул ошибку, значит функция тест не была запущена, после чего тест перейдет к следующей функции тесту.

Пример:

 class MyFirstTest: public QObject
 {
     Q_OBJECT
 private slots:
     void initTestCase()
     { qDebug("called before everything else"); }
     void myFirstTest()
     { QVERIFY(1 == 1); }
     void mySecondTest()
     { QVERIFY(1 != 2); }
     void cleanupTestCase()
     { qDebug("called after myFirstTest and mySecondTest"); }
 };

Другие примеры приведены в Учебное пособие по QTestLib.

[править] Сборка

Если вы используете qmake в качестве инструмента сборки, добавьте следующустроку в ваш файл проекта:

 CONFIG += qtestlib

Если вы используете другой инструмент сборки, убедитесь что вы добавили путь к header файлам QTestLib (обычно include/QtTest в директории установки Qt). Если вы используете release сбоку Qt, свяжите ваш тест с библиотекой QtTest. Для debug сборок, используйте QtTest_debug.

Смотрите Написание тестов для получения пояснения как это делается шаг за шагом.

[править] Аргументы командной строки QTestLib

[править] Синтаксис

Синтаксис выполнения автотеста имеет такую форму:

 testname [options] [testfunctions[:testdata]]...

Замените testname реальным именем. testfunctions может содержать имена функций тестов, которые должны выполняться. Если testfunctions не задана, то будут выполнены все тесты. Если к имени функции теста будут добавлена testdata, то функция тест будет выполнена только с testdata.

Например:

     /myTestDirectory$ testQString toUpper

Запуск функции теста выполняющей toUpper со всеми доступными тестовыми данными.

     /myTestDirectory$ testQString toUpper toInt:zero

Запускает функцию тест со всеми доступными тестовыми данными toUpper, и функцию тест для toInt с тестовыми данными установленными в ноль (если тестовые данные не существуют, осациированный с ними тест закончится ошибкой.

     /myTestDirectory$ testMyWidget -vs -eventdelay 500

Запускает функцию тест testMyWidget, выводит информацию о возникновении любого сигнала и ждет 500 милисекунд после каждой симуляции событий мыши/клавиатуры.

[править] Опции

Общеприняты следующие аргументы командной строки:

  • -help
    вывод доступных аргументов командной строки и получение помощи.
  • -functions
    вывод всех доступных функций тестов теста.
  • -o filename
    запись выводимых данных в файл
  • -silent
    silent вывод, показывает только предупреждения, ошибки и минимальное статус сообщение
  • -v1
    verbose вывод; выводит информацию от введенных и существующих функций тестов.
  • -v2
    расширение verbose вывода; также выводит QCOMPARE() и QVERIFY()
  • -vs
    выводит информацию о возникновении любого сигнала.
  • -xml
    вывод в XML-формате вместо обычного текста
  • -lightxml
    выводит результаты как XML поток
  • -eventdelay ms
    if no delay is specified for keyboard or mouse simulation ( QTest::keyClick(), QTest::mouseClick() etc.), the value from this parameter (in milliseconds) is substituted.
  • -keydelay ms
    like -eventdelay, but only influences keyboard simulation and not mouse simulation.
  • -mousedelay ms
    like -eventdelay, but only influences mouse simulation and not keyboard simulation.
  • -keyevent-verbose
    освещать имитацию клавитуры более подробно
  • -maxwarnings numberBR sets the maximum number of warnings to output. 0 for unlimited, defaults to 2000.

Copyright © 2007 Trolltech Trademarks
Qt 4.3.2