首页 > 解决方案 > gmock.h 不包含在我的 Google 测试的外部依赖项中

问题描述

我在 Windows 10 上使用 Visual Studio 2017。我创建了一个新的谷歌测试项目来测试我的另一个项目。#include "gtest/gtest.h"不会给出编译错误,但是#include "gmock/gmock.h"会!查看外部依赖项文件夹的内部,我看到 gtest.h 在那里,但没有 gmock.h。所以当我尝试包含模拟时,编译器给我这个错误:“无法打开包含的文件:'gmock/gmock.h':没有这样的文件或目录”。当我进入Tools -> Extensions and Updates时,我看到 Test Adapter for Google Test 的版本为:0.10.1.7 并且它的发行说明说它支持 Google Test V1.8.0,它根据https://github.com具有 google mock /google/googletest/releases

  1. 为什么 gmock.h 不存在?我是否需要更新“Google 测试的测试适配器”或 Google 测试本身?是不是因为我可能有较低版本的谷歌测试?我什至不知道如何找到我拥有的 Google Test 版本;它没有说。

  2. 我是否应该不使用测试适配器,而是尝试将最新版本的 googletest 自己配置到 Visual Studio 2017 中?

  3. 让 gmock 与我的设置一起工作的最佳方法是什么?

标签: c++visual-studio-2017windows-10googletestgooglemock

解决方案


出于某种原因,Visual Studio 2017 附带了 Google Test,但没有附带 Google Mock。

这个问题解释了如何将标准包更新为包含 Google Mock 的包。然而,这对我不起作用。

我通过下载 Google Test(包括 Google Mock)并自己构建它来解决它。

之后,创建一个新的控制台应用程序项目(不是Google 测试项目)。更改配置以包含 Google Test 包含目录和与 Google Test 库的链接。对于 Google Test 1.8.1 和调试配置:

  • 添加$(GTEST_DIR)\googletest\include$(GTEST_DIR)\googlemock\include附加包含目录;
  • 添加gtestd.lib,gmockd.libgmock_maind.lib附加依赖项;
  • 添加$(GTEST_DIR)\googlemock\gtest\Debug$(GTEST_DIR)\googlemock\Debug到其他库目录。

$(GTEST_DIR)是您构建 Google Test 的位置。将其替换为实际目录或设置环境变量。

如果您构建应用程序,Visual Studios 测试资源管理器应将其识别为 Google 测试应用程序。


推荐阅读