Questions tagged «googletest»

基于xUnit的Google C ++测试框架,可在多个平台上运行。

10
C ++单元测试框架的比较
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我知道关于C ++单元测试框架的建议已经存在一些问题,但是所有答案都无济于事,因为他们只是推荐了其中一种框架,但没有提供有关(功能)比较的任何信息。 我认为最有趣的框架是CppUnit,Boost和新的Google测试框架。有人做过比较吗?

10
如何开始使用GTest和CMake
最近,我因使用CMake编译我的C ++项目而受宠若惊,现在想开始为我的代码编写一些单元测试。我已决定使用Google Test实用程序来解决此问题,但在入门方面需要一些帮助。 我整天都在阅读各种指南和示例,包括Primer,IBM的介绍和有关SO的一些问题(此处和此处)以及其他我所追踪的资源。我知道那里有很多东西,但是不知何故我仍然遇到困难。 我目前正在尝试实施最基本的测试,以确认我已经正确编译/安装了gtest,并且该测试无法正常工作。唯一的源文件(testgtest.cpp)几乎完全来自此先前的答案: #include <iostream> #include "gtest/gtest.h" TEST(sample_test_case, sample_test) { EXPECT_EQ(1, 1); } 我关联的CMakeLists.txt如下: cmake_minimum_required(VERSION 2.6) project(basic_test) # Setup testing enable_testing() find_package(GTest REQUIRED) include_directories(${GTEST_INCLUDE_DIR}) # Add test cpp file add_executable(runUnitTests testgtest.cpp ) # Link test executable against gtest & gtest_main target_link_libraries(runUnitTests ${GTEST_LIBRARY_DEBUG} ${GTEST_MAIN_LIBRARY_DEBUG}) add_test( NAME runUnitTests COMMAND runUnitTests …

3
如何在GoogleTest中运行特定的测试用例
我正在尝试为我的项目编写一个函数/方法,该函数/方法将询问用户要运行哪些所有测试用例?看起来像下面..., Test_Cases_1 |_TestNo1 |_TestNo2....so on Test_Cases_2 |_TestNo1 |_TestNo2....so on .... ....so on Test_Cases_N |_TestNo1 |_TestNo2....so on 因此,现在的挑战是在运行项目时,它应该提示我您想执行哪些所有测试用例?如果我选择Test_Cases_1和Test_Cases_N。然后,它应该执行这两个测试用例,并应从中排除所有其他用例Test_Cases_2 to ....。在结果窗口也是我希望看到的结果Test_Cases_1和Test_Cases_N。 因此,如果我将看到GoogleTest,则有一个称为的方法test_case_to_run_count();但是所有这些test cases都已通过Test_F()方法注册。因此,我做了很多分析,但仍然没有找到任何解决方案。请帮我。

4
C ++项目组织(带有gtest,cmake和doxygen)
我是编程的新手,所以我决定从用C ++创建一个简单的矢量类开始。但是,我想从一开始就养成良好的习惯,而不是稍后再尝试修改我的工作流程。 我目前只有两个文件vector3.hpp和vector3.cpp。随着我对一切的熟悉,这个项目将开始慢慢发展(使它更多地成为通用的线性代数库),因此我想采用“标准”项目布局,以使以后的生活更轻松。因此,环顾四周后,我发现了两种组织hpp和cpp文件的方法,第一种是: project └── src ├── vector3.hpp └── vector3.cpp 第二个是: project ├── inc │ └── project │ └── vector3.hpp └── src └── vector3.cpp 您会推荐哪个?为什么? 其次,我想使用Google C ++测试框架对我的代码进行单元测试,因为它似乎很容易使用。您是否建议将此与我的代码捆绑在一起,例如在inc/gtest或contrib/gtest文件夹中?如果捆绑在一起,您是否建议使用fuse_gtest_files.py脚本来减少数量或文件数量,或者保持原样?如果不捆绑在一起,该依赖性如何处理? 在编写测试时,通常如何组织这些测试?我当时想为每个类创建一个cpp文件(test_vector3.cpp例如),但是全部编译成一个二进制文件,以便它们可以轻松地一起运行? 由于gtest库通常是使用cmake和make构建的,所以我认为对我的项目也这样构建有意义吗?如果我决定使用以下项目布局: ├── CMakeLists.txt ├── contrib │ └── gtest │ ├── gtest-all.cc │ └── gtest.h ├── docs │ └── Doxyfile ├── inc …
123 c++  cmake  doxygen  googletest 

8
GoogleTest:如何跳过测试?
使用Google Test 1.6(Windows 7,Visual Studio C ++)。如何关闭给定的测试?(aka如何阻止测试运行)。除了注释整个测试,我还能做些什么?
118 googletest 




5
如何在Google C ++测试框架中发送自定义消息?
我使用Google C ++测试框架对代码进行单元测试。我使用带有C ++单元测试模块的Eclipse CDT进行输出分析。 以前我使用CppUnit,它具有宏家族 CPPUNIT * _MESSAGE,可以这样称呼它: CPPUNIT_ASSERT_EQUAL_MESSAGE("message",EXPECTED_VALUE,ACTUAL_VALUE) 并允许发送自定义消息以测试输出。 有没有办法在Google测试输出中包含一些自定义文本? (最好是将消息包含到现有程序读取的数据中,以便使用Google测试进行自动单元测试的方式。)
81 c++  googletest 


5
Google Test是否可以测试C代码?
因此,我开始喜欢并喜欢对参与的C ++项目使用Google Test。我只是提出了一个新的项目,该项目将是纯C语言(一个库),到目前为止还看不到任何原因即使是C ++框架,也不要继续使用Google Test。拥有C ++编译器将不是问题。 是否有特定原因导致我不应该使用Google Test测试直接的C代码? 谢谢。
72 c  googletest 

3
GoogleTest与CppUnit:事实
在接下来的几年中设置C ++单元测试框架的过程中,我们选择了GoogleTest和CppUnit。我对两者都有一定的经验,我的首选是GoogleTest。无论如何说服我的老板我需要一些事实,所以我在互联网上做了一些阅读,包括手册,维基页面和一些资源。我想出了GoogleTest优势和一个CppUnit优势(图形测试运行程序)的列表。在这里,它们按感知的有用性排序: INSTANTIATE_TEST_CASE_P用您想要的任何参数集(包括笛卡尔乘积)实例化测试用例 FRIEND_TEST,用于测试私有类成员(适用于所有旧版代码) 将断言变成断点 非致命断言 “开箱即用” googlemock集成 自动测试检测,无需枚举 可以禁用和启用测试 可以使用名称模式选择要运行的测试 值/类型参数化测试 用户定义的谓词断言 死亡测试 更加丰富的断言 类型断言 在子程序上断言 可以使用<<将其他调试信息添加到断言中 RecordProperty向XML输出发出属性的最后一个值 SCOPED_TRACE帮助理解断言失败的上下文,该断言来自子例程或循环内部。 Jenkins可以立即显示xUnit XML输出,而无需在两者之间进行XSLT转换 支持自定义类型的打印机 测试指示所消耗的时间(我怀疑这对于CppUnit也可行,但我还没有弄清楚) 测试事件侦听器API(用户定义的插件) 测试改组 没有例外,RTTI 我假设CppUnit不支持以上所有内容是否正确?是否有一个有用的功能GoogleTest无法在CppUnit的我失踪? 最后但并非最不重要的一点:GoogleTest是否缺少任何出色的CppUnit功能? 谢谢!
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.