8
votes

Comment configurer GoogleMock dans Visual Studio 2017 Après avoir déjà installé Googletest?

J'ai installé le package Microsoft.GoogleTest.v140.Windesktop.msvcstl.static.rt-Dyn dans ma solution d'application VS 2017. Cela a été accompli en ajoutant un nouveau projet GoogletSTest à ma solution via "Ajouter un nouveau projet / autre langues / C ++ / Test / test".

Les tests fonctionnent bien, mais maintenant je suis prêt à essayer des moqueurs avec Gmock. Donc, j'ai installé GoogleMock.v140.windesktop.static.rt-dyn de Nuget, mais je n'ai aucune idée de la façon de l'obtenir intégré à mon projet de test. P>

Mes packages.config ressemble à ceci:

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


0 commentaires

3 Réponses :


1
votes

Je suis tombé sur une réponse à ma propre question. Après avoir installé Gmock via Nuget, j'ai essayé de saisir #include "gmock / gmock.h" dans le projet de projet de mon projet de test juste sous la #include "gtest / gtest.h" . Cela n'a pas fonctionné. J'ai regardé dans le dossier "dépendances externes" pour toute référence à GMOCK mais n'en trouva pas une. J'ai été souples jusqu'à ce que je remplace #include "gmock / gmock.h" avec #include "gtest / gmock.h" . Il n'y avait pas d'erreurs générées à ce moment-là. On dirait que je suis sur le point de faire des simulacres de type Google.


1 commentaires

#include "gtest \ gtest.h" #include "gtest \ gmock.h" test (testcasename, testName) {attendu_eq (1, 1); Attendu_true (vrai); } int main (int argc, char ** argv) {:: Test :: initgooglemememock (& ​​argc, argv); }



2
votes

TLDR; La solution pour moi a été de renommer le dossier Inclure fourni avec Google Mock Package

de:

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 \ natif \ include \ gmock


J'ai exactement la même situation ici (version des ensembles de paquets), mais j'ai été résolue d'une autre manière (puisque la solution de @ r.evans n'a pas fonctionné).

J'ai remarqué que l'ouverture du package Google Mock Il existe un dossier appelé GTEST au lieu de gmock , et ce nom est masquant google Paquet de test. Désinstaller un, vous pouvez voir l'autre dans le chemin Inclure.

En outre, tous les en-têtes Google Mock utilisent Gmock comme chemin principal de leurs en-têtes, donc avec le dossier d'en-tête appelé GTEST Visual Studio rapporte des tonnes d'erreurs même dans Google. Code Source simulé.


1 commentaires

Avoir à faire semblable après #include "gtest / gmock.h", comme gmock.h utilise #include "gmock / gmock-actions.h". Quelqu'un publie le paquet sans le tester.



8
votes

Il y a quelques mauvais test Google Test / Google Mock Packages disponibles sur Nuget, tel que celui référencé par cette question. Celui que vous voulez est The Gmock Package Autorité par Google Inc (version v1.8.1 à ce sujet écrire) Simplement en ajoutant xxx

comme mentionné dans le documentation .


1 commentaires

Je devais fermer et rouvrir le .sln pour que Gmock soit trouvé, même s'il l'a montré dans mes packages.Config.