Модульное тестирование в QTestLib - запуск одиночного теста / тестов в классе / всех тестов
Я только начинаю использовать QTestLib. Я прошел руководство и учебник. Хотя я понимаю, как создавать тесты, я просто не понимаю, как сделать эти тесты удобными для запуска. Мой фоновый тестовый фон - NUnit и MSTest. В этих средах было тривиально (по крайней мере, с использованием графического интерфейса пользователя) переключаться между выполнением одного теста, или всеми тестами в одном классе тестов, или всеми тестами во всем проекте, просто нажав правую кнопку.
В QTestLib я вижу только то, что вы используете QTEST_MAIN
макрос для запуска тестов в одном классе, а затем компилировать и тестировать каждый файл отдельно; или использовать QTest::qExec()
в main()
определить, какие объекты тестировать, а затем вручную изменить их и перекомпилировать, когда вы хотите добавить / удалить тестовые классы.
Я уверен, что что-то упустил. Я хотел бы иметь возможность легко:
- Запустить один метод тестирования
- Запустите тесты во всем классе
- Запустите все тесты
Любой из них вызовет соответствующие функции настройки / разрыва.
РЕДАКТИРОВАТЬ: Щедрость теперь доступна. Должен быть лучший способ, или тестовый интерфейс GUI, который справится с этим для вас или чего-то еще. Если вы используете QtTest в тестовой среде, дайте мне знать, что работает для вас. (Сценарии, тестовые прогоны и т. Д.)
2 ответа
Вы можете запустить только выбранные тестовые случаи (методы тестирования), передав имена тестов в качестве аргументов командной строки:
myTests.exe myCaseOne myCaseTwo
Он также запустит все начальные / чистящие процессы. К сожалению, поддержка подстановочных знаков / сопоставление с образцом не поддерживается, поэтому для запуска всех дел, начинающихся с заданной строки (я предполагаю, что вы имеете в виду "выполнение тестов во всем классе"), вам необходимо создать сценарий (windows batch/bash/perl/ что угодно), что вызывает:
myTests.exe -functions
анализирует результаты и запускает выбранные тесты, используя первый синтаксис.
Чтобы запустить все случаи, просто не передавайте никаких параметров:
myTests.exe
Три функции, запрошенные OP, в настоящее время интегрированы в Qt Creator.
Проект будет автоматически просканирован на наличие тестов, и они появятся на панели тестов. Снизу слева на скриншоте:
Каждый тест и соответствующие данные можно включить, установив флажок. Контекстное меню позволяет запустить все тесты, все тесты класса, только выбранный или только один тест. Как просили.
Результаты теста также будут доступны у Qt Creator. Цветовой индикатор будет показывать, пройден / не пройден каждый тест вместе с дополнительной информацией, такой как сообщения отладки.
В сочетании с Qt Creator, использование QTEST_MAIN
макрос для каждого тестового случая будет работать хорошо, так как каждый скомпилированный исполняемый файл вызывается Qt Creator автоматически.
Для более подробного обзора обратитесь к разделу " Запуск автотестов " Руководства по Qt Creator.