gmock.h no está incluido en las dependencias externas de mi prueba de Google

Aug 21 2020

Estoy usando Visual Studio 2017 en Windows 10. Creé un nuevo proyecto de prueba de Google para probar otro proyecto mío. #include "gtest/gtest.h"no da errores de compilación, ¡pero #include "gmock/gmock.h"sí! Mirando dentro de la carpeta de dependencias externas, veo que gtest.h está allí, pero no gmock.h. Entonces, cuando intento incluir mock, el compilador me da este error: "No se puede abrir el archivo incluido: 'gmock / gmock.h': No existe tal archivo o directorio". Cuando entro en Herramientas -> Extensiones y actualizaciones , veo que el Adaptador de prueba para prueba de Google tiene la versión: 0.10.1.7 y sus notas de la versión dicen que es compatible con Google Test V1.8.0, que tiene Google Mock segúnhttps://github.com/google/googletest/releases.

  1. ¿Por qué gmock.h no está ahí? ¿Necesito actualizar el "Adaptador de prueba para la prueba de Google" o la prueba de Google? ¿Es porque puedo tener una versión más baja de la prueba de Google? Ni siquiera estoy seguro de cómo encontrar la versión de Google Test que tengo; no dice.

  2. ¿No debería usar el Adaptador de prueba y en su lugar intentar configurar la última versión de googletest yo mismo en Visual Studio 2017?

  3. ¿Cuál es la mejor manera de hacer que gmock funcione con mi configuración?

Respuestas

1 rveerd Aug 25 2020 at 11:57

Por alguna razón, Visual Studio 2017 viene con Google Test pero no con Google Mock.

Esta pregunta explica cómo actualizar el paquete estándar a un paquete que incluye Google Mock. Sin embargo, eso no funcionó para mí.

Lo resolví descargando Google Test (incluido Google Mock) y construyéndolo yo mismo.

Después de eso, cree un nuevo proyecto de aplicación de consola ( no un proyecto de prueba de Google). Cambie la configuración para incluir los directorios de inclusión de Google Test y el enlace con las bibliotecas de Google Test. Para la configuración de depuración y prueba de Google 1.8.1:

  • agregar $(GTEST_DIR)\googletest\includey $(GTEST_DIR)\googlemock\includeincluir directorios adicionales;
  • agregar gtestd.lib, gmockd.libya gmock_maind.libdependencias adicionales;
  • agregar $(GTEST_DIR)\googlemock\gtest\Debugy $(GTEST_DIR)\googlemock\Debuga directorios de bibliotecas adicionales.

Aquí $(GTEST_DIR)está la ubicación donde creó Google Test. Reemplácelo con el directorio real o establezca el entorno variable.

Si crea la aplicación, Visual Studios Test Explorer debería reconocerla como una aplicación de prueba de Google.