gTest и несколько основных () - PullRequest
       13

gTest и несколько основных ()

4 голосов
/ 23 февраля 2011

У меня есть проект Eclipse. Все тестовые сценарии находятся в одном файле * .cpp. Проблема в том, что таким образом я получаю две функции main (). Один для самого приложения и один для тестовых случаев. И Eclipse, конечно, отказывается от сборки ... Я хотел бы сохранить все вместе в рамках одного проекта (и избегать использования нескольких конфигураций, репозиториев SVN и т. Д.). В идеале я хотел бы заставить Eclipse создать два исполняемых файла (один для приложения и один для тестовых случаев). Я быстро взглянул на Eclipse Makefile, но, честно говоря, я не совсем понимаю, как именно он работает. Можно всегда исключать Main.cpp / Testcases.cpp и создавать один исполняемый файл, но это не очень элегантно ...

Кто-нибудь с подобным опытом?

Ответы [ 2 ]

6 голосов
/ 05 октября 2012

Я наткнулся на эту ссылку, которая была очень полезна: http://pezad -gamess.googlecode.com / svn / trunk / GTestTest / HOWTO .

Автор описывает, как настроить gtest для одного проекта в eclipse, имея два исходных файла с методами main(): один в каталоге с именем "src", а другой в каталоге с именем "test".

Для этого он вводит новую конфигурацию (кроме DEBUG / RELEASE) под названием "GTEST" - в этой конфигурации все включаемые линкеры / заголовки имеют значение gtest , а также исключение для src / [main] .cpp:

Свойства для main.cpp >> Сборка C / C ++ >> Настройки: исключить ресурс из сборки

С другой стороны, конфиги DEBUG & RELEASE exclude excludeтест / [main_test] .cpp.

1 голос
/ 23 февраля 2011

Связываете ли вы с libgtest_main в дополнение к libgtest? Если вы не ссылаетесь на libgtest_main, вы должны быть хорошими.

Если вы хотите создать два исполняемых файла с Eclipse CDT, самый простой способ - создать для каждого исполняемого файла отдельный проект. У вас может быть ссылка на один проект, если у вас есть общий код.

...