google测试框架

简介: google测试框架

介绍


谷歌测试框架,对其做了一些修改;做了一个测试代码的通用Makefile.inc脚本;


这样只需要写测试代码和配置测试代码的Makefile里面对应的文件即可。


代码目录


gtest-1.6.0: google gtest测试框架源码

test_gtest:测试demo的代码与makefile


安装教程


编译安装gtest:

cd gtest-1.6.0
./configure    #生成makefile
make -j4
sudo make install


库文件默认是安装在/usr/lib下面,头文件安装在/usr/include下面。


使用说明


目录介绍

.
├── gtest.pdf -----------------------gtest文档
├── test ----------------------------单元测试目录
│   ├── Makefile --------------------测试代码的makefile
│   ├── Makefile.inc ----------------公共makefile
│   ├── obj  ------------------------编译过程文件.o存放目录
│   ├── test ------------------------测试框架代码编译结果,可执行文件;
│   └── unit_test -------------------单元测试框架demo代码
│       ├── test_c.cpp
│       ├── test_gtest.cpp
│       ├── test_paraList.cpp
│       ├── test_testCase.cpp
│       ├── test_test.cpp
│       └── test_testSuit.cpp
├── test_c.c  -----------------------被测试代码
├── test.cc   -----------------------被测试代码
├── test_c.h  -----------------------被测试代码
├── test.cpp  -----------------------被测试代码
└── test.h    -----------------------被测试代码


可以进入demo代码目录编译测试:

cd test_gtest/test
make 
./test


运行结果:

Running main() from gtest_main.cc
-----------------------start test-----------------------
[==========] Running 24 tests from 9 test cases.
[----------] Global test environment set-up.
[----------] 2 tests from TestSuitTest
------------------TestSuitTest----set up
================================================
[ RUN      ] TestSuitTest.Test1
[       OK ] TestSuitTest.Test1 (0 ms)
================================================
[ RUN      ] TestSuitTest.Test2
[       OK ] TestSuitTest.Test2 (0 ms)
------------------TestSuitTest----Tear down 
[----------] 2 tests from TestSuitTest (0 ms total)

[----------] 2 tests from TestCaseTest
================================================
[ RUN      ] TestCaseTest.ZeroEqual
------------------testCase----set up
-------------------testCase---TearDown
[       OK ] TestCaseTest.ZeroEqual (0 ms)
================================================
[ RUN      ] TestCaseTest.OneEqual
------------------testCase----set up
-------------------testCase---TearDown
[       OK ] TestCaseTest.OneEqual (0 ms)
[----------] 2 tests from TestCaseTest (0 ms total)

[----------] 2 tests from FooTest
================================================
[ RUN      ] FooTest.ZeroEqual
----------------------set up
----------------------TearDown
[       OK ] FooTest.ZeroEqual (0 ms)
================================================
[ RUN      ] FooTest.OneEqual
----------------------set up
----------------------TearDown
[       OK ] FooTest.OneEqual (0 ms)
[----------] 2 tests from FooTest (0 ms total)

[----------] 3 tests from test
================================================
[ RUN      ] test.sum_ok
[       OK ] test.sum_ok (0 ms)
================================================
[ RUN      ] test.sum_0
[       OK ] test.sum_0 (0 ms)
================================================
[ RUN      ] test.sum_negtive
sum(3,-6) = -3
[       OK ] test.sum_negtive (0 ms)
[----------] 3 tests from test (0 ms total)

[----------] 1 test from catString
================================================
[ RUN      ] catString.catString_null
/mnt/hgfs/share_VM/mycode/gtest/test_gtest/test/unit_test/test_test.cpp:31: Failure
Expected: catString(__null, __null) throws an exception of type char*.
  Actual: it throws a different type.
[  FAILED  ] catString.catString_null (0 ms)
[----------] 1 test from catString (0 ms total)

[----------] 2 tests from textMax
================================================
[ RUN      ] textMax.EXPECT_PRED2_false
/mnt/hgfs/share_VM/mycode/gtest/test_gtest/test/unit_test/test_test.cpp:38: Failure
textMax(m, n) evaluates to false, where
m evaluates to 5
n evaluates to 6
[  FAILED  ] textMax.EXPECT_PRED2_false (0 ms)
================================================
[ RUN      ] textMax.EXPECT_PRED2_true
[       OK ] textMax.EXPECT_PRED2_true (0 ms)
[----------] 2 tests from textMax (0 ms total)

[----------] 1 test from AssertSumTest
================================================
[ RUN      ] AssertSumTest.HandleFail
/mnt/hgfs/share_VM/mycode/gtest/test_gtest/test/unit_test/test_test.cpp:61: Failure
3 和 6 相加得:9 而不是:2
[  FAILED  ] AssertSumTest.HandleFail (0 ms)
[----------] 1 test from AssertSumTest (0 ms total)

[----------] 1 test from test_c
================================================
[ RUN      ] test_c.sum_c_ok
[       OK ] test_c.sum_c_ok (0 ms)
[----------] 1 test from test_c (0 ms total)

[----------] 10 tests from TrueReturn/IsPrimeParamTest
================================================
[ RUN      ] TrueReturn/IsPrimeParamTest.HandleTrueReturn/0
[       OK ] TrueReturn/IsPrimeParamTest.HandleTrueReturn/0 (0 ms)
================================================
[ RUN      ] TrueReturn/IsPrimeParamTest.HandleTrueReturn/1
[       OK ] TrueReturn/IsPrimeParamTest.HandleTrueReturn/1 (0 ms)
================================================
[ RUN      ] TrueReturn/IsPrimeParamTest.HandleTrueReturn/2
[       OK ] TrueReturn/IsPrimeParamTest.HandleTrueReturn/2 (0 ms)
================================================
[ RUN      ] TrueReturn/IsPrimeParamTest.HandleTrueReturn/3
[       OK ] TrueReturn/IsPrimeParamTest.HandleTrueReturn/3 (0 ms)
================================================
[ RUN      ] TrueReturn/IsPrimeParamTest.HandleTrueReturn/4
[       OK ] TrueReturn/IsPrimeParamTest.HandleTrueReturn/4 (0 ms)
================================================
[ RUN      ] TrueReturn/IsPrimeParamTest.HandleTrueReturn/5
[       OK ] TrueReturn/IsPrimeParamTest.HandleTrueReturn/5 (0 ms)
================================================
[ RUN      ] TrueReturn/IsPrimeParamTest.HandleTrueReturn/6
[       OK ] TrueReturn/IsPrimeParamTest.HandleTrueReturn/6 (0 ms)
================================================
[ RUN      ] TrueReturn/IsPrimeParamTest.HandleTrueReturn/7
[       OK ] TrueReturn/IsPrimeParamTest.HandleTrueReturn/7 (0 ms)
================================================
[ RUN      ] TrueReturn/IsPrimeParamTest.HandleTrueReturn/8
[       OK ] TrueReturn/IsPrimeParamTest.HandleTrueReturn/8 (0 ms)
================================================
[ RUN      ] TrueReturn/IsPrimeParamTest.HandleTrueReturn/9
[       OK ] TrueReturn/IsPrimeParamTest.HandleTrueReturn/9 (0 ms)
[----------] 10 tests from TrueReturn/IsPrimeParamTest (1 ms total)

[----------] Global test environment tear-down
--------------------------RESULT--------------------------
[==========] 24 tests from 9 test cases ran. (1 ms total)
[  PASSED  ] 21 tests.
[  FAILED  ] 3 tests, listed below:
[  FAILED  ] catString.catString_null
[  FAILED  ] textMax.EXPECT_PRED2_false
[  FAILED  ] AssertSumTest.HandleFail

 3 FAILED TESTS


码云地址


https://gitee.com/fensnote/google-test-framework

目录
相关文章
|
9天前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
52 8
|
15天前
|
人工智能 JavaScript 前端开发
自动化测试框架的演进与实践###
本文深入探讨了自动化测试框架从诞生至今的发展历程,重点分析了当前主流框架的优势与局限性,并结合实际案例,阐述了如何根据项目需求选择合适的自动化测试策略。文章还展望了未来自动化测试领域的技术趋势,为读者提供了宝贵的实践经验和前瞻性思考。 ###
|
22天前
|
人工智能 监控 测试技术
探索软件测试中的自动化框架选择与优化策略####
【10月更文挑战第21天】 本文深入剖析了软件测试领域面临的挑战,聚焦于自动化测试框架的选择与优化这一核心议题。不同于传统摘要的概述方式,本文将以一个虚拟案例“X项目”为线索,通过该项目从手动测试困境到自动化转型的成功历程,生动展现如何根据项目特性精准匹配自动化工具(如Selenium、Appium等),并结合CI/CD流程进行深度集成与持续优化,最终实现测试效率与质量的双重飞跃。读者将跟随“X项目”团队的视角,直观感受自动化框架选型的策略性思考及实践中的优化技巧,获得可借鉴的实战经验。 ####
31 0
|
4天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
29 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
10天前
|
安全 Ubuntu Linux
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
32 9
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
|
18天前
|
Java 测试技术 API
探索软件测试中的自动化框架选择####
在当今快节奏的软件开发周期中,自动化测试已成为确保产品质量与加速产品迭代的关键策略。本文深入剖析了自动化测试的核心价值,对比分析了市场上主流的自动化测试框架,旨在为项目团队提供选型时的考量因素及实践指南,助力高效构建适应未来变化的自动化测试体系。 ####
|
14天前
|
Java 测试技术 API
探索软件测试中的自动化测试框架
本文深入探讨了自动化测试在软件开发中的重要性,并详细介绍了几种流行的自动化测试框架。通过比较它们的优缺点和适用场景,旨在为读者提供选择合适自动化测试工具的参考依据。
|
17天前
|
jenkins 测试技术 持续交付
自动化测试框架的搭建与实践
在软件开发领域,自动化测试是提升开发效率、确保软件质量的关键手段。本文将引导读者理解自动化测试的重要性,并介绍如何搭建一个基本的自动化测试框架。通过具体示例和步骤,我们将探索如何有效实施自动化测试策略,以实现软件开发流程的优化。
42 7
|
14天前
|
数据管理 jenkins 测试技术
自动化测试框架的设计与实现
在软件开发周期中,测试是确保产品质量的关键步骤。本文通过介绍自动化测试框架的设计原则、组件构成以及实现方法,旨在指导读者构建高效、可靠的自动化测试系统。文章不仅探讨了自动化测试的必要性和优势,还详细描述了框架搭建的具体步骤,包括工具选择、脚本开发、执行策略及结果分析等。此外,文章还强调了持续集成环境下自动化测试的重要性,并提供了实际案例分析,以帮助读者更好地理解和应用自动化测试框架。
|
15天前
|
监控 测试技术 定位技术
探索软件测试中的自动化测试框架选择与实施###
本文不概述传统意义上的摘要内容,而是直接以一段对话形式引入,旨在激发读者兴趣。想象一下,你是一名勇敢的探险家,面前摆满了各式各样的自动化测试工具地图,每张地图都指向未知的宝藏——高效、精准的软件测试领域。我们将一起踏上这段旅程,探讨如何根据项目特性选择合适的自动化测试框架,并分享实施过程中的关键步骤与避坑指南。 ###
27 4