googletest相关内容

链接到多个 .obj 以对控制台应用程序进行单元测试

有一些问题,希望我能找到一些帮助. 我在 Visual Studio 2012 的同一个解决方案下有两个项目 一些背景知识,我创建了一个控制台应用程序,该应用程序输出为 .exe,这是在一个项目中. 在另一个项目中,我设置了 google 测试以在控制台应用程序项目中的类上运行单元测试. 如果我能够将主项目编译为静态库,则不会出现问题,因为可以链接到 .lib,但这不是一个 ..
发布时间:2022-01-11 15:29:33 C/C++开发

无趣的模拟函数调用 bla() &&预期:至少被调用一次 bla()?

我用模拟类编写了一个小测试.当我运行它时,首先我得到一个警告,即调用了一个无趣的模拟函数,然后测试失败,因为没有满足期望,即模拟函数至少被调用一次.有趣的是,当我看到上面的警告消息时,调用了该函数. 你对这件事有什么想法吗? 谢谢! 编辑:这是我的代码结构: class Bla {上市:布拉();虚拟〜Bla();虚拟浮动 myFunction();}MockBla 类:公共 ..
发布时间:2022-01-08 22:08:53 C/C++开发

您如何使用 FFF 和 Google Test 在 C/C++ 中模拟和测试相同的函数?

我正在探索 TDD(测试驱动开发)来测试我用 C 和 C++ 编写的代码.我选择使用 Google Test 作为单元测试框架.我选择使用 FFF 作为模拟框架. 我编写了一些测试并运行它们,效果很好.但是我遇到了一个我无法在网上找到任何参考的问题,我希望社区可以帮助我(这也可以帮助其他人). 我遇到的问题是我想为函数 A1 编写一个测试(参见下面的场景 1).由于它调用了另外三个函数 ..

在 Mac 上构建 Google 测试时出现链接错误(命令行)

我目前正在尝试构建一些使用 Google C++ 测试框架的测试代码,但我一直收到一个错误提示 ld: 警告:在/usr/local/lib/libgtest.dylib 中,文件是为不受支持的文件格式构建的,这不是所链接的体系结构 (i386) 我已尝试使问题尽可能简单: 我有一个主函数cmtest.cc #include /** 主要入口点 */int main(int a ..
发布时间:2021-12-28 20:21:15 C/C++开发

CMake 错误:“add_subdirectory 未给出二进制目录"

我正在尝试将 Google Test 集成到更大项目的子项目中,但找不到令我满意的解决方案. 我有两个限制: Google Test 的源代码已经存在于项目结构中(因此不能使用 URL 从 git 存储库下载它) Google Test 的源代码不是我的子项目的子目录(并且永远不会) 所以当我尝试做这样的事情时: add_subdirectory( ${GOOGLETEST_ ..
发布时间:2021-12-26 22:00:38 C/C++开发

如何克隆外部(来自 git)cmake 项目并将其集成到本地项目中

我在尝试使用 Google Test 时遇到了一个问题. 关于如何使用ExternalProject_Add将gtest添加到项目中有很多手册,但其中大部分描述了一种基于使用gtest下载zip存档并构建它的方法. 众所周知,gtest 是 github 托管和基于 cmake 的项目.所以我想找到原生的 cmake 方式. 如果这是一个只有头文件的项目,我会这样写: cmak ..
发布时间:2021-12-26 21:56:33 C/C++开发

C++ 项目组织(使用 gtest、cmake 和 doxygen)

我是编程新手,所以我决定从用 C++ 编写一个简单的向量类开始.但是,我希望从一开始就养成良好的习惯,而不是在以后尝试修改我的工作流程. 我目前只有两个文件 vector3.hpp 和 vector3.cpp.随着我对所有内容越来越熟悉,这个项目将慢慢开始发展(使其更像是一个通用的线性代数库),所以我想采用“标准"项目布局,让以后的生活更轻松.因此,环顾四周后,我找到了两种组织 hpp 和 ..
发布时间:2021-12-26 21:54:56 C/C++开发

CMake + 谷歌测试

我刚刚下载了 googletest,使用 CMake 生成了它的 makefile 并构建了它.现在,我需要在我的测试项目中使用它. 使用 CMake,我被告知不要直接指向 gtest 库(使用 include _directories 或 link_directories),而是使用 find_package(). 问题是,生成的 gtest 生成文件没有安装目标.我无法理解 fin ..
发布时间:2021-12-26 21:27:52 其他开发

用于运行测试和浏览报告的 Eclipse (CDT) 插件

Google 的回答(听到!听到!)和 Eclipse Market Place 搜索结果关于这个主题简直让我发疯!显然,提议的 SO 答案也没有真正的帮助. 我正在寻找一个 Eclipse 插件,它允许我浏览由谷歌测试运行程序生成的 JUnit 报告 XML 兼容单元测试报告. 很高兴有功能: 从失败报告跳转到源 构建后自动运行测试. 我很确定存在适用于 Eclipse ..
发布时间:2021-12-24 23:05:08 Java开发

无法让 hudson 解析 JUnit 测试输出 XML

EDIT:此问题已在 gtest 1.4.0 中由 google 修复;查看原始错误报告了解更多信息. 我最近为我的 C++ 测试框架切换到 gtest,我目前无法使用它的一个重要功能是能够生成 JUnit 样式的 XML 测试报告,然后我们的 hudson 可以读取这些报告构建服务器. gtest 测试套件生成的 XML 输出看起来都是合法的: ..
发布时间:2021-12-24 23:02:14 C/C++开发

CPack:从子目录(googletest 目录)中排除 INSTALL 命令

我在一个项目中使用 CMake,在我的测试用例中使用 googletest.环顾互联网,将 googletest 源代码复制到存储库的子文件夹中并将其包含在“add_subdirectory(googletest)"中似乎是常见做法.我就是这么做的. 现在我使用 CPack 为我的项目生成 debian 包.不幸的是,CPack 生成的包与我的项目一起安装了 googletest.这当然不是 ..
发布时间:2021-12-23 17:57:41 C/C++开发

默认情况下,如何使用 CMake 使 GTest 构建/MDd(而不是/MTd)?

我正在尝试尽可能无缝地将 GTest 与 CMake 集成.但是我的测试项目的默认构建类型是 /MDd 而 GTest 默认为 /MTd.我正在手动更改 GTest 项目属性以发出调试 DLL. 但是每次我对 CMakeLists.txt 进行更改时,GTest 默认返回到 /MTd.我该如何阻止? 解决方案 您可以在包含 gtest 之前将 gtest_force_shared_c ..
发布时间:2021-12-22 18:41:32 其他开发

什么是 Google 测试、死亡测试

我看到该功能的文档似乎非常重要,因为它位于 Google 测试概述功能中,并在: https://github.com/google/googletest/blob/master/docs/advanced.md#death-tests 它们看起来像标准的 assert() 但它们是 Google Test 的一部分,因此是一个 xUnit 测试框架.因此,我想知道使用这些死亡测试的真正用 ..
发布时间:2021-12-15 11:53:32 C/C++开发

Jenkins 构建脚本在 Google 测试执行后退出

我正在通过 Jenkins 构建 Qt GUI 应用程序.我添加了 3 个构建步骤: 构建测试可执行文件 运行测试可执行文件 使用 gcovr 编译覆盖率报告 出于某种原因,用于运行测试可执行文件的 shell 任务在执行后停止.即使是简单的 echo 也不会运行.测试是用 Google Test 编写的,并输出 xUnit XML 文件,这些文件在构建后进行分析.一些测试会启动应 ..
发布时间:2021-12-14 21:41:33 其他开发

如何在 GoogleTest 中运行特定的测试用例

我正在尝试为我的项目编写一个函数/方法,它会询问用户您要运行哪些所有测试用例?它看起来像下面..., Test_Cases_1|_TestNo1|_TestNo2....以此类推测试用例_2|_TestNo1|_TestNo2....以此类推........很快测试用例_N|_TestNo1|_TestNo2....以此类推 那么,现在的挑战是在运行项目时,它应该提示我您想要执行的所有测试用例 ..
发布时间:2021-12-14 19:00:17 C/C++开发

谷歌模拟 - 我可以在同一个模拟对象上多次调用 EXPECT_CALL 吗?

如果我在同一个 TEST_F 中的同一个模拟对象上两次调用 EXPECT_CALL ...会发生什么? 是否将期望附加到模拟对象上,还是第二次调用消除了第一次调用的影响? 我发现了之后子句似乎暗示允许多次调用同一个模拟+ EXPECT_CALL. 解决方案 是的,您可以在同一个模拟对象上多次调用 EXPECT_CALL.只要您确保在实际使用模拟方法之前调用了所有 EXPECT_ ..
发布时间:2021-12-09 19:33:09 C/C++开发

gmock 可以用于存根 C 函数吗?

我是 gmock 的新手,所以我想知道如何存根在被测函数中调用的简单 C 函数以进行单元测试. 示例: int func(int a){布尔查找;//一些代码查找 = func_1();返回查找;} 我搜索了 gmock,据我所知 gmock 不提供存根简单 C 函数的功能,因此我想问一下 gmock 是否提供模拟或存根 func_1 的功能? 如果不是,我如何在不更改源代码的情况 ..
发布时间:2021-12-09 19:17:58 其他开发

如何开始使用 GTest 和 CMake

我最近热衷于使用 CMake 来编译我的 C++ 项目,现在想开始为我的代码编写一些单元测试.我已决定使用 Google Test 实用程序来帮助解决此问题,但需要一些入门帮助. 我整天都在阅读各种指南和示例,包括 入门,IBM 介绍 以及关于 SO 的一些问题(此处 和 此处) 以及我已经忘记的其他来源.我意识到那里有很多东西,但不知何故我仍然遇到困难. 我目前正在尝试实施最基本的测 ..
发布时间:2021-12-09 18:38:47 其他开发