Настройка юнит тестирования в Qt Creator - PullRequest
13 голосов
/ 13 марта 2011

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

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

1 Ответ

4 голосов
/ 13 марта 2011

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

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

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

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

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

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

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

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

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

...