Visual Studio C ++: модульное тестирование exe-проекта с google test? - PullRequest
7 голосов
/ 02 июня 2011

Использование Visual Studio 2010 C ++.Я экспериментирую с юнит-тестированием и решил попробовать Google Test (gtest).У меня есть существующий проект, который компилируется в исполняемый файл MFC (меня также интересует, как протестировать проект, который компилируется в DLL).Я понимаю соглашение о модульном тестировании, что вы должны создать новый отдельный проект для ваших тестов.Поэтому я создал новый проект в том же решении для своих модульных тестов.Но как мне связать проекты?Могу ли я протестировать произвольные функции / методы моего exe-проекта из моего тестового проекта?

Как обычно это сделать?

Ответы [ 3 ]

9 голосов
/ 05 ноября 2013

Я думаю, что лучший способ организовать унитарный тест:

  • Не меняйте основной проект. Структура должна быть независимой от ваших тестовых действий. На мой взгляд, изменение вашего проекта на большую статическую библиотеку И исполняемый файл действительно не элегантно. Вместо этого добавьте действие после сборки, чтобы объединить все файлы obj в статический файл lib, который будет использоваться ТОЛЬКО вашим тестовым проектом.

  • Создайте простой тестовый проект со ссылками на вашу тестовую среду И статическую библиотеку, которую вы ранее создали.

  • Наслаждайтесь.

Основным преимуществом является то, что вы не затрагиваете проект, который хотите протестировать, и не включаете весь исходный код в свой тестовый проект.

Чтобы увидеть, как вы можете сделать это для Visual Studio, вы можете увидеть этот пост: Ссылка на несколько .obj для модульного тестирования консольного приложения

6 голосов
/ 02 июня 2011

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

3 голосов
/ 08 февраля 2016

Я подготовил репозиторий github, в том числе решение Visual Studio 2015, в ответе Билли.Вы можете использовать его напрямую без каких-либо дополнительных требований или зависимостей.

https://github.com/fuatcoskun/GoogleTestVS2015

Надеюсь, это поможет ...

...