导航:首页 > 源码编译 > 编译gtest示例文件并运行

编译gtest示例文件并运行

发布时间:2022-10-30 00:13:30

‘壹’ Oasis 乐队的《Supersonic》 的中文歌词

Supersonic 中文歌词
Wikipedia,自由的网络全书
收录专辑:Definitely Maybe

Supersonic 超音速

I need to be myself
我要做自己
I can't be no one else
我不要像其他人一样
I'm feeling supersonic
我正享受着超音速
Give me gin and tonic
请给我一杯gin and tonic
You can have it all but how much do you want it?
你可以一饮而尽但要喝多少杯才够

You make me laugh
你让我大笑
Give me your autograph
请给我你的签名
Can I ride with you in your BMW ?
我可以坐上你的BMW一起兜风吗?
You can sail with me in my yellow submarine
还是你可以坐上我的黄色潜水艇一同共游 (注1)

You need to find out
你得好好思索
'Cos no one's gonna tell you what I'm on about
因为不会有人告诉你我所言为何
You need to find a way for what you want to say
你得想办法让自己畅其所言
But before tomorrow
但得在天亮之前

'Cos my friend said he'd take you home
因为我的朋友说他会带你回家
He sits in a corner all alone
他坐在角落独自一个人
He lives under a waterfall
他住在瀑布底下
No body can see him
别人见不到他
No body can ever hear him call
也听不到他的呼唤

You need to be yourself
你得做你自己
You can't be no one else
不要像其他人一样
I know a girl called Elsa
我认识个叫做Elsa的女孩
She's into Alka Seltzer
她对Alka Seltzer很着迷(注2)
She sniffs it through a cane on a supersonic train
她在超音速火车里用根管子吸食它

She made me laugh
她曾让我大笑
I got her autograph
我也拿过她的签名
She done it with a doctor on a helicopter
她曾在直升机里和一位医生搞过
She's sniffin in her tissue
而如今她却拿卫生纸直打喷嚏
Sellin' the Big Issue
在大街上叫卖杂志 (注3)

And She finds out
而现在她终于了解
no one's gonna tell her what I'm on about
没有人要告诉她我所言为何
You need to find a way for what she wants to say
你得想办法听懂她要讲什么
But before tomorrow
但得在天亮之前

'Cos my friend said he'd take you home
因为我的朋友说他会带你回家
He sits in a corner all alone
他坐在角落独自一个人
He lives under a waterfall
他住在瀑布底下
No body can see him
别人见不到他
No body can ever hear him call
也听不到他的呼唤

‘贰’ gtest测试用例必须是.cc 后缀吗

是的,省略了部分错误信息,看到了undefined reference,编译通过,但是链接失败,可以猜测是没有找到对应的库。再仔细看实际执行时打印的命令
g++ -o test_main.o -c test_main.cpp
g++ -o test_main test_main.o
很显然,没有引入gtest的头文件,也没有加载gtest对应的库。

‘叁’ 如何使用GTest对Qt工程代码做unit test

googletest是一个用来写C++单元测试的框架,它是跨平台的,可应用在windows、linux、Mac等OS平台上。下面,我来说明如何使用最新的1.6版本gtest写自己的单元测试。 本文包括以下几部分:1、获取并编译googletest(以下简称为gtest);2、如何编写单元测试用例;3、如何执行单元测试。4、google test内部是如何执行我们的单元测试用例的。 1. 获取并编译gtest gtest试图跨平台,理论上,它就应该提供多个版本的binary包。但事实上,gtest只提供源码和相应平台的编译方式,这是为什么呢?google的解释是,我们在编译出gtest时,有些独特的工程很可能希望在编译时加许多flag,把编译的过程下放给用户,可以让用户更灵活的处理。这个仁者见仁吧,反正也是免费的BSD权限。 目前gtest提供的是1.6.0版本,我们看看与以往版本1.5.0的区别: [cpp] view plain Changes for 1.6.0: * New feature: ADD_FAILURE_AT() for reporting a test failure at the given source location -- useful for writing testing utilities. 。。。 。。。 * Bug fixes and implementation clean-ups. * Potentially incompatible changes: disables the harmful 'ma...

‘肆’ 怎么在visual studio中用gtest

运行msvc下的gtest.sln文件,它会提示自动升级为新的解决方案,然后生成即可。记得Debug和Release都要生成,分别用于测试Debug和Release方案的代码。我使用的是以下4个文件,还可以使用另外一个.sln文件,请自行文档之~

msvc\gtest\Debug - Debug方案下的二进制文件:gtestd.lib、gtest_maind.lib(注意主文件名的d后缀)
msvc\gtest\Release - Release方案下的二进制文件:gtest.lib、gtest_main.lib

‘伍’ 如何编译google test的例子

Cmake generates native build scripts. 先建立mybuild目录
# cd /usr/src/gtest-1.5.0
# mddir mybuild
# cd mybuild
(1) only generate gtest_unittest

# cmake /usr/src/gtest-1.5.0 //generate Makefile
# make //generate executable file gtest_unittest
(2) generate gtest_unittest and all samples
//generate Makefile with Google Test's samples to be compiled
# cmake -Dbuild_gtest_samples=ON /usr/src/gtest-1.5.0

//generate executable files gtest_unittest, sample1_unittest, sample2_unittest, ...
# make
Reference
http://code.google.com/p/googletest
../readme

Appendix. 使用CMake编译gtest_unittest和samples

//生成Makefile文件
root@yu29:/usr/src/gtest-1.5.0/mybuild# cmake -Dbuild_gtest_samples=ON /usr/src/gtest-1.5.0
-- The CXX compiler identification is GNU
-- The C compiler identification is GNU
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Looking for include files CMAKE_HAVE_PTHREAD_H
-- Looking for include files CMAKE_HAVE_PTHREAD_H - found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found pythonInterp: /usr/bin/python2.6
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/src/gtest-1.5.0/mybuild
root@yu29:/usr/src/gtest-1.5.0/mybuild# ls
CMakeCache.txt CMakeFiles cmake_install.cmake CTestTestfile.cmake Makefile
//编译
root@yu29:/usr/src/gtest-1.5.0/mybuild# make
Scanning dependencies of target gtest
[ 5%] Building CXX object CMakeFiles/gtest.dir/src/gtest-all.cc.o
Linking CXX static library libgtest.a
[ 5%] Built target gtest
Scanning dependencies of target gtest_main
[ 11%] Building CXX object CMakeFiles/gtest_main.dir/src/gtest_main.cc.o
...
//生成了所有samples的可执行程序
root@yu29:/usr/src/gtest-1.5.0/mybuild# ls
CMakeCache.txt libgtest.a sample2_unittest sample7_unittest
CMakeFiles libgtest_main.a sample3_unittest sample8_unittest
cmake_install.cmake Makefile sample4_unittest sample9_unittest
CTestTestfile.cmake sample10_unittest sample5_unittest
gtest_unittest sample1_unittest sample6_unittest
//看看sample2的执行结果
root@yu29:/usr/src/gtest-1.5.0/mybuild# ./sample2_unittest
Running main() from gtest_main.cc
[==========] Running 4 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 4 tests from MyString
[ RUN ] MyString.DefaultConstructor
[ OK ] MyString.DefaultConstructor (0 ms)
[ RUN ] MyString.ConstructorFromCString
[ OK ] MyString.ConstructorFromCString (0 ms)
[ RUN ] MyString.CopyConstructor
[ OK ] MyString.CopyConstructor (0 ms)
[ RUN ] MyString.Set
[ OK ] MyString.Set (0 ms)
[----------] 4 tests from MyString (0 ms total)

[----------] Global test environment tear-down
[==========] 4 tests from 1 test case ran. (1 ms total)
[ PASSED ] 4 tests.
//gtest_unittest的执行结果较长,此处不再显示。

‘陆’ googletest的安装和使用

git clone https://github.com/google/googletest/tree/master/googletest.git

mkdir mybuild
cd mybuild
生成构建gtest所需要的辅助文件
cmake ../google
make
如果make报错很多,是因为gcc等级不够,不支持c++11,先升级gcc,我的当前gcc等级为8.3.1

3.1 在/usr/lib底下新建文件夹gtest
cd /usr/lib
mkdir gtest
3.2 将mybuild/lib中生成的libgmock.a、libgmock_main.a、libgtest.a、libgtest_main.a复制到新建的/usr/lib/gtest中
3.3 源文件拷贝
不是所有文件,只需要拷贝gtest/googletest/googletest/include/gtest
cp -r gtest/googletest/googletest/include/gtest /usr/include/

编译: g++ gtest.cpp -lgtest -lpthread
运行: ./a.out

‘柒’ jenkins报错找不到gtest结果文件

因为不是Jenkins容器目录从而导致报错。
代码是储存在docker容器内,而Jenkins在构建时跑dockerrun命令时调用的是本地目录,不是Jenkins容器目录从而导致报错。解决方法如下:
1、maven的pom文件的修改:需要在依赖下标签中中加入。做完这步,可以本地先跑一下mvntest,可以直接在开发工具中运行。本地调试脚本没有问题就可以进行第二步。
2、选择项目右击---Runas---Mavenbuild输入命令test就可以了。
3、jenkins新建一个maven项目,然后选择svn目录,构建输入test命令,然后可以在构建后添加一个TestNGXMLreport也可以添加别的测试报告。记得下载对应的插件。

‘捌’ Linux平台如何编译使用Google test写的单元测试

(请参考readme文件) Step1.编译gtest-all.cc和gtest_main.cc文件g++ -I${GTEST_DIR}/include -I${GTEST_DIR} -c ${GTEST_DIR}/src/gtest-all.ccg++ -I${GTEST_DIR}/include -I${GTEST_DIR} -c ${GTEST_DIR}/src/gtest_main.cc Step2.将step1生成的gtest-all.o和gtest_main.o打包成静态库libgtest.aar -rv libgtest.a gtest-all.o gtest_main.o Step3.编译要测试的代码(假设文件名为sample.cpp)g++ -I${GTEST_DIR}/include -c sample.cpp Step4.编译单元测试的代码(假设文件名为test.cpp)g++ -I${GTEST_DIR}/include -c test.cpp Step5.与libgtest.a或其他需要的库链接、生成可执行程序g++ -I${GTEST_DIR}/include test.o sample.o libgtest.a -o test 其他的库,如pthread库。简单版本all:g++ -I/usr/src/gtest-1.5.0/include -I/usr/src/gtest-1.5.0 -g -c /usr/src/gtest-1.5.0/src/gtest-all.ccg++ -I/usr/src/gtest-1.5.0/include -I/usr/src/gtest-1.5.0 -g -c /usr/src/gtest-1.5.0/src/gtest_main.ccar -rv libgtest.a gtest-all.o gtest_main.og++ -I/usr/src/gtest-1.5.0/include -g -c sample.cppg++ -I/usr/src/gtest-1.5.0/include -g -c test.cppg++ -I/usr/src/gtest-1.5.0/include -lpthread test.o sample.o libgtest.a -g -o testclean:rm test libgtest.a *.o 实际上,其中将gtest-all.o和gtest_main.o压缩为libgtest.a库,可以省去,直接使用.o文件,如下。all:g++ -I/usr/src/gtest-1.5.0/include -I/usr/src/gtest-1.5.0 -g -c /usr/src/gtest-1.5.0/src/gtest-all.ccg++ -I/usr/src/gtest-1.5.0/include -I/usr/src/gtest-1.5.0 -g -c /usr/src/gtest-1.5.0/src/gtest_main.ccg++ -I/usr/src/gtest-1.5.0/include -g -c sample.cppg++ -I/usr/src/gtest-1.5.0/include -g -c test.cppg++ -I/usr/src/gtest-1.5.0/include -lpthread test.o sample.o gtest-all.o gtest_main.o -g -o testclean:rm test *.o正式版本# Google Test directoryGTEST_DIR = /usr/src/gtest-1.5.0 # Flags passed to the preprocessor.CPPFLAGS += -I$(GTEST_DIR)/include # Flags passed to the C++ compiler.CXXFLAGS += -g -Wall -Wextra # All Google Test headers. Usually you shouldn't change this definition.GTEST_HEADERS = $(GTEST_DIR)/include/gtest/*.h $(GTEST_DIR)/include/gtest/internal/*.h # All Google Test sourcesGTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_HEADERS) # All tests proced by this Makefile. Remember to add new tests you created to the list.TESTS = test all : $(TESTS) clean :rm -f $(TESTS) gtest.a gtest_main.a *.o gtest-all.o : $(GTEST_DIR)/src/gtest-all.cc # $(GTEST_SRCS_)$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c $(GTEST_DIR)/src/gtest-all.cc gtest_main.o : $(GTEST_DIR)/src/gtest_main.cc # $(GTEST_SRCS_)$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c $(GTEST_DIR)/src/gtest_main.cc gtest_main.a : gtest-all.o gtest_main.o$(AR) $(ARFLAGS) $@ $^ sample.o : sample.cpp sample.h $(GTEST_HEADERS)$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c sample.cpp test.o : test.cpp sample.h $(GTEST_HEADERS)$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c test.cpp test : sample.o test.o gtest_main.a$(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $@$^代表依赖项,$@代表目标。

‘玖’ linux下怎么退出gtest

(请参考readme文件)??Step1.编译gtest-all.cc和gtest_main.cc文件g++ -I${GTEST_DIR}/include -I${GTEST_DIR} -c ${GTEST_DIR}/src/gtest-all.ccg++ -I${GTEST_DIR}/include -I${GTEST_DIR} -c ${GTEST_DIR}/src/gtest_main.cc??Step2.将step1生成的gtest-all.o和gtest_main.o打包成静态库libgtest.aar -rv libgtest.a gtest-all.o gtest_main.o??Step3.编译要测试的代码(假设文件名为sample.cpp)g++ -I${GTEST_DIR}/include -c sample.cpp??Step4.编译单元测试的代码(假设文件名为test.cpp)g++ -I${GTEST_DIR}/include -c test.cpp??Step5.与libgtest.a或其他需要的库链接、生成可执行程序g++ -I${GTEST_DIR}/include test.o sample.o libgtest.a -o test??其他的库,如pthread库。简单版本all:g++ -I/usr/src/gtest-1.5.0/include -I/usr/src/gtest-1.5.0 -g -c /usr/src/gtest-1.5.0/src/gtest-all.ccg++ -I/usr/src/gtest-1.5.0/include -I/usr/src/gtest-1.5.0 -g -c /usr/src/gtest-1.5.0/src/gtest_main.ccar -rv libgtest.a gtest-all.o gtest_main.og++ -I/usr/src/gtest-1.5.0/include -g -c sample.cppg++ -I/usr/src/gtest-1.5.0/include -g -c test.cppg++ -I/usr/src/gtest-1.5.0/include -lpthread test.o sample.o libgtest.a -g -o testclean:rm test libgtest.a *.o??实际上,其中将gtest-all.o和gtest_main.o压缩为libgtest.a库

‘拾’ 如何使用gtest参数跑特定用例

googletest是一个用来写C++单元测试的框架,它是跨平台的,可应用在windows、linux、Mac等OS平台上。下面,我来说明如何使用最新的1.6版本gtest写自己的单元测试。 本文包括以下几部分:1、获取并编译googletest(以下简称为gtest);

阅读全文

与编译gtest示例文件并运行相关的资料

热点内容
java字符串ascii码 浏览:57
台湾云服务器怎么租服务器 浏览:458
旅游手机网站源码 浏览:311
android关联表 浏览:925
安卓导航无声音怎么维修 浏览:318
app怎么装视频 浏览:420
安卓系统下的软件怎么移到桌面 浏览:78
windows拷贝到linux 浏览:753
mdr软件解压和别人不一样 浏览:886
单片机串行通信有什么好处 浏览:321
游戏开发程序员书籍 浏览:844
pdf中图片修改 浏览:273
汇编编译后 浏览:477
php和java整合 浏览:833
js中执行php代码 浏览:445
国产单片机厂商 浏览:59
苹果手机怎么设置不更新app软件 浏览:287
转行当程序员如何 浏览:496
苹果id怎么验证app 浏览:866
查看手机命令 浏览:956