2013-08-15 3 views
2

У нас есть довольно большое консольное приложение на C++, которое теперь должно быть проверено модулем через Googletest.Проект Visual C++: настройка наилучшего модуля тестирования

Я думал, что было бы неплохо сохранить модульные тесты и выполнение теста в рамках отдельного проекта. Оба проекта находятся в одном решении. Поскольку тестируемое приложение скомпилировано как исполняемый файл, а не как статическая библиотека, я несколько не понимаю, как ссылаться на код реализации из моих модульных тестов в тестовом проекте.

Я не хочу помещать все файлы кода в качестве существующих элементов в тестовый проект, также было бы очень полезно разбить существующий исполняемый файл на статический слой библиотеки и соответствующий исполняемый файл «wrapping».

Короче говоря: любые хорошие идеи о том, как тестировать существующий исполняемый проект на C++, используя отдельный тестовый проект? :)

Чтобы сделать проблему немного сложнее: мне нужно использовать VS 2008 atm.

ответ

2

Одним из возможных вариантов я могу думать о том, чтобы добавить все источники из основного проекта модульного тестирования проекта в качестве ссылки:

Visual Studio - how to create two projects using the same sources

Второй вариант будет использовать пост-действия в основного проекта и скомпилировать основной проект или часть его из командной строки в библиотеку, которая может быть связана с модульным тестовым проектом. Таким образом, одно действие «build» создало бы exe и файл dll/lib.

Третий вариант, как-то сочетающий два варианта: управление проектным модулем за пределами VS - компиляция источников основного проекта из сценария сборки (простой командный файл или счётчики, make, ant и т. Д.) С источниками тестов и выполнить из командной строки.

+0

Ok спасибо. Я думаю, что подойду для третьего подхода и использую какой-то скрипт сборки. – mbue

1

Я думаю, что вы будете на

интересуетесь

Это в основном говорит, что вы не касаетесь основного проекта, добавьте действие после сборки, объединяющую ваш OBJ файлов в статический файл lib. Затем вы можете связать свой тестовый проект с этой статической библиотекой.

Это дает много преимуществ, на мой взгляд, как вы не измените свой основной проект, тестовый проект всегда будет в курсе, ...

Смежные вопросы