Модульное тестирование в QTestLib - запуск одиночного теста / тестов в классе / всех тестов - PullRequest
10 голосов
/ 22 апреля 2010

Я только начинаю использовать QTestLib. Я прошел учебник по и . Хотя я понимаю, как создавать тесты, я просто не понимаю, как сделать эти тесты удобными для запуска. Мой фоновый тестовый фон - NUnit и MSTest. В этих средах было тривиально (по крайней мере, с использованием графического интерфейса пользователя) переключаться между выполнением одного теста, или всеми тестами в одном классе тестов, или всеми тестами во всем проекте, просто нажав правую кнопку.

Все, что я вижу в QTestLib, это либо вы используете макрос QTEST_MAIN для запуска тестов в одном классе, а затем компилируете и тестируете каждый файл отдельно; или используйте QTest::qExec() в main(), чтобы определить, какие объекты нужно тестировать, а затем вручную измените это и перекомпилируйте, когда вы хотите добавить / удалить тестовые классы.

Я уверен, что что-то упустил. Я хотел бы иметь возможность легко:

  • Запуск одного метода тестирования
  • Выполнить тесты во всем классе
  • Запустить все тесты

Любой из них вызовет соответствующие функции настройки / демонтажа.

РЕДАКТИРОВАТЬ: Щедрость теперь доступна. Должен быть лучший способ, или тестовый интерфейс GUI, который справится с этим для вас или чего-то еще. Если вы используете QtTest в тестовой среде, дайте мне знать, что работает для вас. (Сценарии, тестовые прогоны и т. Д.)

Ответы [ 2 ]

6 голосов
/ 22 апреля 2010

Вы можете запускать только выбранные тестовые случаи (методы тестирования), передавая имена тестов как аргументы командной строки :

myTests.exe myCaseOne myCaseTwo

Он также будет запускать все входы / очистки. К сожалению, поддержка подстановочных знаков / сопоставление с образцом не поддерживается, поэтому для запуска всех дел, начинающихся с заданной строки (я предполагаю, что вы имеете в виду это «запуск тестов во всем классе»), вам необходимо создать скрипт (windows batch / bash / perl / что угодно), что вызывает:

myTests.exe -functions

анализирует результаты и запускает выбранные тесты, используя первый синтаксис.

Чтобы запустить все дела, просто не передавайте никаких параметров:

myTests.exe
1 голос
/ 18 января 2018

Три функции, запрошенные OP, в настоящее время интегрированы в Qt Creator .

Проект будет автоматически проверен на наличие тестов, и они появятся на панели тестов. Снизу слева на скриншоте:

Qt Creator screenshot

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

Результаты теста также будут доступны у Qt Creator. Цветовой индикатор будет показывать, пройден / не пройден каждый тест вместе с дополнительной информацией, такой как сообщения отладки.

В сочетании с Qt Creator использование макроса QTEST_MAIN для каждого тестового случая будет работать хорошо, так как каждый скомпилированный исполняемый файл вызывается Qt Creator автоматически.

Более подробный обзор приведен в разделе Запуск автотестов Руководства по Qt Creator.

...