c++ - 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。
为什么 gmock.h 不存在?我是否需要更新“Google 测试的测试适配器”或 Google 测试本身?是不是因为我可能有较低版本的谷歌测试?我什至不知道如何找到我拥有的 Google Test 版本;它没有说。
我是否应该不使用测试适配器,而是尝试将最新版本的 googletest 自己配置到 Visual Studio 2017 中?
让 gmock 与我的设置一起工作的最佳方法是什么?
解决方案
出于某种原因,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.lib
和gmock_maind.lib
附加依赖项; - 添加
$(GTEST_DIR)\googlemock\gtest\Debug
和$(GTEST_DIR)\googlemock\Debug
到其他库目录。
这$(GTEST_DIR)
是您构建 Google Test 的位置。将其替换为实际目录或设置环境变量。
如果您构建应用程序,Visual Studios 测试资源管理器应将其识别为 Google 测试应用程序。
推荐阅读
- python - 如何修复“ZeroDivisionError:浮点除以零”
- iis - launchsettings.json - commandName、IIS 还是 Project for Production?
- javascript - 从父级调用子级函数说“不是函数”?
- python - 使用带有 http.client 的 api 来解析 imdb 电影数据库
- laravel - Eloquent:获取每月每一天的数据
- ffmpeg - 如何使用 MSYS2 环境为 Windows 静态编译 ffmpeg?
- c# - Selenium Firefox 不添加扩展
- c# - “新标准内核()”上的“无法加载文件或程序集 'Ninject.Web.Common'”错误
- android - 过滤recyclerview后获取位置
- ssh - 来自远程服务器的 Git 克隆在 bitbucket 管道中失败