Как настроить GoogleMock в Visual Studio 2017 после установки GoogleTest? - PullRequest
0 голосов
/ 27 апреля 2018

Я установил пакет Microsoft.googletest.v140.windesktop.msvcstl.static.rt-dyn в свое прикладное решение VS 2017. Это было достигнуто путем добавления нового проекта GoogleTest к моему решению через «Добавить новый проект / Другие языки / C ++ / Test / Google Test».

Тестирование работает хорошо, но теперь я готов попробовать насмешки с помощью gmock. Итак, я установил googlemock.v140.windesktop.static.rt-dyn через NuGet, но понятия не имею, как его интегрировать в мой тестовый проект.

Мой package.config выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="googlemock.v140.windesktop.static.rt-dyn" version="1.7.0.1"  targetFramework="native" />
  <package id="Microsoft.googletest.v140.windesktop.msvcstl.static.rt-dyn" version="1.8.0" targetFramework="native" />
</packages>

... но нет никаких заголовочных файлов внешних зависимостей или файлов .lib, на которые можно ссылаться, насколько я вижу. Я не знаю, куда идти отсюда. : -)

P.S. Я разместил вопросы о GoogleTest на форуме Microsoft C ++, но они не будут отвечать на эти вопросы о GoogleTest, даже если он был установлен через Visual Studio.

Ответы [ 3 ]

0 голосов
/ 01 февраля 2019

TLDR; Решением для меня было переименование папки include, входящей в пакет Google Mock

от

packages\googlemock.v140.windesktop.static.rt-dyn.1.7.0.1\build\native\include\gtest

до

packages\googlemock.v140.windesktop.static.rt-dyn.1.7.0.1\build\native\include\gmock


У меня точно такая же ситуация (та же версия пакетов), но я решил по-другому (так как решение от @ R.Evans не сработало).

Я заметил, что при открытии пакета Google Mock существует папка с именем gtest вместо gmock, и это имя скрывает пакет Google Test. Деинсталлируя один, вы можете увидеть другой в пути включения.

Более того, все заголовки Google Mock используют gmock в качестве основного пути для своих заголовков, поэтому с папкой заголовков с именем gtest Visual Studio сообщает о множестве ошибок даже в исходном коде Google Mock.

0 голосов
/ 21 мая 2019

В NuGet есть несколько плохих пакетов Google Test / Google Mock, например, на которые ссылается этот вопрос. Вам нужен пакет gmock , созданный Google Inc (версия v1.8.1 на момент написания этой статьи).

После установки этого пакета packages.config вашего проекта должен выглядеть следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="gmock" version="1.8.1" targetFramework="native" />
</packages>

И вы можете начать использовать GMock, просто добавив

#include "gmock\gmock.h"

как указано в документации .

0 голосов
/ 27 апреля 2018

Я наткнулся на ответ на свой вопрос. После установки gmock через NuGet я попытался набрать # include «gmock / gmock.h» в .cpp моего тестового проекта под # include «gtest / gtest.h» . Это не сработало. Я искал в папке «Внешние зависимости» любые ссылки на gmock, но не нашел ни одного. Я был в тупике, пока не заменил # include «gmock / gmock.h» на # include «gtest / gmock.h» . В этот момент ошибок не было. Похоже, я нахожусь на пути к тому, чтобы делать несколько гугл-типов.

...