Начальный код :: блоки и UnitTest ++ - PullRequest
8 голосов
/ 18 сентября 2011

Я собираюсь начать проект C ++, но я застрял в основах.

Я хочу использовать (linux) Code :: Blocks IDE, и легко создать нормальный проект.Однако я хочу сделать TDD, используя инфраструктуру UnitTest ++, и я не знаю, как правильно все настроить.

Я уже задавал вопрос о том, куда поместить UnitTest::RunAllTests() команда, и они сказали мне, что лучшее место - main() отдельной программы.

Как мне поступить с этим в Code :: Blocks?Я думаю, что мне нужно создать 2 проекта:

  • «Реальный» проект со своим собственным main();
  • Проект модульного тестирования, содержащий тесты и main() с UnitTest::RunAllTests() inside.

Затем каким-то образом выполните сборку первого проекта и запустите второй в процессе сборки.Я пока не знаю, как это сделать, но я могу узнать сам.

Мои вопросы:

  1. Это правильный метод?
  2. я должен также создать проект для платформы UnitTest ++, чтобы позволить другим людям создавать его на других платформах?Или достаточно отбросить скомпилированную библиотеку в путь проекта?
  3. , как я могу организовать каталоги этих проектов вместе?Было бы неплохо поместить тесты, связанные с каждым пакетом, в тот же каталог, что и этот пакет, но нормально ли иметь несколько проектов в одном дереве каталогов?

1 Ответ

4 голосов
/ 19 сентября 2011

Я частично отвечу на свои вопросы, поскольку мне удалось заставить все работать.

  1. Следуя инструкциям на официальной странице документации 1005 *, я поставилпапка UnitTest ++ с скомпилированной библиотекой и всеми исходными файлами в пути моего проекта.
  2. Затем я создал тестовый проект для всего модульного тестирования с главной функцией, содержащей знаменитую UnitTest::RunAllTests().Я поместил $exe_output в качестве процесса пост-сборки, чтобы тесты выполнялись автоматически каждый раз, когда я создаю этот проект.
  3. Я создал «реальный» проект, куда пойдет мой код для тестирования.В настройках сборки я указал тестовый проект как зависимость от реального проекта, так что каждый раз, когда я строю реальный, он также сначала создает тестовый проект.

С этими настройками я могу работатьна моих тестах и ​​на реальном коде, и мне нужно только построить реальный для выполнения обновленных тестов.Любой неудачный тест также приведет к сбою сборки.

Теперь остается два вопроса: «Это лучший подход?»и «прямо сейчас каждый проект находится в отдельном каталоге. Разумнее оставить его таким образом, или я должен поместить каждый тест в ту же папку, что и реальный код для тестирования?»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...