Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to Configure GoogleMock in Visual Studio 2017 After Already Installing GoogleTest?

I installed the Microsoft.googletest.v140.windesktop.msvcstl.static.rt-dyn package into my VS 2017 application solution. This was accomplished by adding a new GoogleTest project to my solution via "Add New Project/Other Languages/C++/Test/Google Test".

The testing works well, but now I am ready to try some mocking with gmock. So, I installed googlemock.v140.windesktop.static.rt-dyn via NuGet, but I have no idea of how to get it integrated into my test project.

My packages.config looks like this:

<?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>

... but there are no external dependency header files or .lib files to link to as far as I can see. I don't know where to go from here. :-)

P.S. I have posted questions about GoogleTest on Microsoft's C++ forum, but they will not answer these types of questions about GoogleTest even though it was installed via Visual Studio.

like image 872
R.Evans Avatar asked Apr 26 '18 23:04

R.Evans


People also ask

How do I setup a Google test in Visual Studio?

Add a Google Test project in Visual Studio 2022In Solution Explorer, right-click on the solution node and choose Add > New Project. Set Language to C++ and type test in the search box. From the results list, choose Google Test Project. Give the test project a name and choose OK.

Is gMock included in Gtest?

gMock is bundled with googletest.


2 Answers

There are some bad Google Test / Google Mock packages available on NuGet, such as the one referenced by this question. The one you want is the gmock package authored by Google Inc (version v1.8.1 as of this writing).

Once this package has been installed, your project's packages.config should look like:

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

And you can begin using GMock simply by adding

#include "gmock\gmock.h"

as mentioned in the documentation.

like image 72
Myk Willis Avatar answered Oct 07 '22 22:10

Myk Willis


TLDR; The solution for me was renaming the include folder provided with Google Mock package

from:

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

to

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


I've the exact same situation here (same packages version), but I've solved in another way (since the solution from @R.Evans didn't work).

I've noticed that opening the Google Mock package there is a folder called gtest instead of gmock, and this name is hiding Google Test package. Uninstalling one, you can see the other one in the include path.

Moreover all Google Mock headers are using gmock as main path for their headers, so with the header folder called gtest Visual Studio is reporting tons of errors even in the Google Mock source code.

like image 28
Kill KRT Avatar answered Oct 07 '22 22:10

Kill KRT