Устройство тестирования в Qtestlib - бегущий один тест / тесты в классе / все тесты
-
30-09-2019 - |
Вопрос
Я просто начинаю использовать Qtestlib. Я прошел через руководство а также руководство. Отказ Хотя я понимаю, как создавать тесты, я просто не понимаю, как сделать эти тесты удобными для бега. Мой модуль теста фон - NUNIT и MSTEST. В этих условиях он был тривиальным (по крайней мере, используя графический интерфейс), чтобы воспользоваться одним тестом или всеми тестами в одном тестовом классе или все тесты во всем проекте, просто нажав на правую кнопку.
Все, что я вижу в Qtestlib, это либо вы используете QTEST_MAIN
Макрос для запуска тестов в одном классе, затем компилируйте и тестируйте каждый файл отдельно; или использовать QTest::qExec()
в main()
Чтобы определить, какие объекты тестируете, а затем вручную измените это и перекомпилируйте, когда вы хотите добавить / удалить тестовые классы.
Я уверен, что я что-то упускаю. Я хотел бы быть в состоянии легко:
- Запустите один метод испытаний
- Запустите тесты во всем классе
- Запустите все тесты
Любой из них позвонит соответствующие функции настройки / разрыва.
РЕДАКТИРОВАТЬ: Bounty теперь доступен. Там должно быть лучший способ, или тестовый бегун GUI, который обрабатывает его для вас или что-то в этом роде. Если вы используете Qttest в среде для тестирования, дайте мне знать, что работает для вас. (Скрипты, тестовые бегуны и т. Д.)
Решение
Вы можете запустить только выбранные тестовые случаи (методы теста), передавая тестовые имена как Аргументы командной строки :
myTests.exe myCaseOne myCaseTwo
Он также будет работать все индийты / очистки. К сожалению, поддержки подстановочных знаков / сопоставления образцов, чтобы запустить все случаи, начиная с заданной строки (я предполагаю, что это то, что вы подразумеваете под «запуском тестов во всем классе»), вам придется создать скрипт (Windows Batch / Bash / Perl / Averty), который звонит:
myTests.exe -functions
Изучает результаты и запускает выбранные тесты с использованием первого синтаксиса.
Чтобы запустить все случаи, просто не проходите никакого параметра:
myTests.exe
Другие советы
Три функция, запрошенные ОП, в настоящее время интегрированы в Qt Creator.
Проект будет автоматически отсканирован на тесты, и они верят на тестовую панель. Дно левое на скриншоте:
Каждый тест и соответствующие данные могут быть включены, нажав флажок. Контекстное меню позволяет запускать все тесты, все тесты класса, только выбранный или только один тест. Как просили.
Результаты испытаний будут доступны от TVT Creator. Индикатор цвета покажет Pass / Fail для каждого теста, вдоль дополнительной информации, такой как сообщения отладки.
В сочетании с КТ Создателем, использование QTEST_MAIN
Макрос для каждого тестового корпуса будет хорошо работать, поскольку каждый компилированный исполняемый файл автоматически вызывается CT Creator.
Для более подробного обзора см. Бег автотестов Раздел руководства QT Creator.