Настройка тестирования модулей в Qt Creator

Я использую Qt Creator с qmake для создания моего проекта и моего тестового проекта (QTest-тесты). У меня сейчас есть тестовый проект, но мне трудно понять, как тестировать классы из моего обычного проекта. Я могу включить файлы .h из моего проекта в тестовые примеры, но этого, конечно, недостаточно.

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

Ответы

Ответ 1

Есть ли простой способ сказать QMake искать все исходные файлы в определенной папке для их загрузки?

qmake поддерживает подстановочные знаки, чтобы вы могли иметь что-то вроде

SOURCES += *.cpp
HEADERS += *.h

в файле проекта.

Также не забудьте отрегулировать MOC_DIR и RCC_DIR, чтобы указать в другом месте, кроме исходной. Вы не хотите включать сгенерированные исходные файлы в SOURCES.

Или какой правильный способ настроить такой тестовый проект без необходимости добавлять каждый исходный файл в тестовый проект или компилировать ваше приложение в lib для включения

Я предпочитаю разделить мои автоматические тесты на два класса:

  • Единичные тесты тестирования отдельных компонентов (обычно они живут в исходном файле). Я высмеиваю зависимости от других частей системы. Каждый unit test представляет собой собственный проект Qt и включает только тестируемые исходные файлы + тестовый код + макет кода.

  • Интеграционные тесты тестируют компоненты целиком без макет кода. Обычно это часть приложения, построенная как библиотека, а затем связанная с тестовым проектом.