Модульное тестирование в 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. Цветовой индикатор будет показывать, пройден / не пройден каждый тест вместе с дополнительной информацией, такой как сообщения отладки.

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

Для более подробного обзора обратитесь к разделу " Запуск автотестов " Руководства по Qt Creator.

Другие вопросы по тегам