Как настроить Google C++ Testing Framework (gtest) с Visual Studio 2005

То, что сказал Арлахарен, было visual-studio в основном правильным, за cpp исключением того, что он visual-studio не упомянул ту часть, которая visual-studio объясняет ваши ошибки компоновщика. Прежде unit-testing всего, вам необходимо создать msvs свое приложение без CRT в качестве visual-studio-2005 библиотеки времени выполнения. В gtest любом случае вы всегда должны visual-studio-2005 это делать, так как это действительно unit-tests упрощает распространение vs.net вашего приложения. Если вы vs.net этого не сделаете, то всем googletest вашим пользователям потребуется msvs установленная библиотека cpp времени выполнения Visual unit-testing C++, а те, кто этого не сделает, будут googletest жаловаться на загадочную googletest пропажу DLL в их системе vs.net ... из-за дополнительных vs2005 нескольких сотен килобайт, которые unittest стоит связать. статически unittest ЭЛТ, вы сэкономите себе много gtest головной боли в дальнейшем cpp при поддержке (поверьте мне, я visual-studio-2005 выучил это на собственном vs.net горьком опыте!).

В любом случае, чтобы vs.net сделать это, вы переходите unit-test к свойствам цели -> C / C++ -> Генерация gtest кода -> Библиотека времени unit-tests выполнения, и она должна unit-test быть установлена ​​как «Многопоточная» для visual-studio-2005 вашей сборки выпуска и «Многопоточность». Debug visual-studio-2005 "для сборки отладки.

Поскольку msvs библиотека gtest построена vs2005 таким же образом, вам необходимо unit-test убедиться, что вы связываетесь unittest с правильной версией it, иначе unit-testing компоновщик подключит другую msvs копию библиотеки времени googletest выполнения, это ошибка, которую gtest вы видели (кстати, это не unit-testing должно иметь значения, используете googletest вы MFC или нет). Вам необходимо c++ создать gtest как как режим отладки, так и режим выпуска и сохранить visual-studio обе копии. Затем вы связываете googletest gtest.lib / gtest_main.lib unit-testing в сборке Release и gtestd.lib vs.net / gtest_maind.lib в сборке unit-tests Debug.

Кроме того, вам необходимо gtest убедиться, что ваше приложение unit-tests указывает на каталог, в котором visual-studio хранятся файлы заголовков visual-studio gtest (в свойствах -> C / C++ -> Общие visual-studio-community -> Дополнительные каталоги gtest включения), но если вы попали visual-studio-community в ошибку компоновщика , Я unit-testing предполагаю, что вам уже vs2005 удалось исправить эту часть, иначе unittest у вас будет гораздо больше gtest ошибок компилятора, с которыми unit-test нужно справиться в первую vs2005 очередь.

c++

visual-studio

unit-testing

visual-studio-2005

googletest

2022-09-06T20:58:19+00:00
Вопросы с похожей тематикой, как у вопроса:

Как настроить Google C++ Testing Framework (gtest) с Visual Studio 2005