在linux上搭建gtest

1.获取 
wget https://googletest.googlecode.com/files/gtest-1.7.0.zip

2.编译 
unzip gtest-1.7.0.zip 
cd gtest-1.7.0 
./configure –prefix=/opt/gtest 
make

3.安装 
sudo mkdir /opt/gtest /opt/gtest/include /opt/gtest/lib 
sudo cp -a include/gtest/ /opt/gtest/include 
sudo cp -a lib/.libs/* /opt/gtest/lib 
rm /opt/gtest/lib/libgtest.la 
rm /opt/gtest/lib/libgtest_main.la 
sudo cp -a lib/libgtest.la /opt/gtest/lib 
sudo cp -a lib/libgtest_main.la /opt/gtest/lib 
vim /etc/ld.so.conf.d/gtest.conf,写入/opt/gtest/lib,执行ldconfig

4.测试 
在任意一个位置新建目录,把以下这几个文件放入 
main.cpp

<code class="hljs cpp has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#include<iostream></span>
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">using</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">namespace</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">std</span>;

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#include <limits.h></span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#include "gtest/gtest.h"</span>

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span> main(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span> argc, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">char</span> **argv) {
  ::testing::InitGoogleTest(&argc, argv);
  <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span> RUN_ALL_TESTS();
}
</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li></ul>

func.cpp

<code class="hljs cpp has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#include<iostream></span>
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">using</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">namespace</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">std</span>;
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#include "func.h"</span>

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span> func(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span> a, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span> b)
{
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span> a+b;
}
</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li></ul>

func.h

<code class="hljs go has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-typename" style="color: rgb(102, 0, 102); box-sizing: border-box;">int</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">func</span>(<span class="hljs-typename" style="color: rgb(102, 0, 102); box-sizing: border-box;">int</span> a, <span class="hljs-typename" style="color: rgb(102, 0, 102); box-sizing: border-box;">int</span> b);</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>

funcTest.cpp

<code class="hljs cpp has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#include<iostream></span>
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">using</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">namespace</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">std</span>;

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#include <limits.h></span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#include "gtest/gtest.h"</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#include "func.h"</span>

TEST(AdditionTest,twoValues){
    EXPECT_EQ(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span>,func(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>));
}
</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li></ul>

makefile

<code class="hljs ruby has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-constant" style="box-sizing: border-box;">CXX</span> = g++
<span class="hljs-constant" style="box-sizing: border-box;">CXXFLAGS</span> = -g -<span class="hljs-constant" style="box-sizing: border-box;">L</span>/opt/gtest/lib -lgtest -lgtest_main -lpthread
<span class="hljs-constant" style="box-sizing: border-box;">INCS</span> = -<span class="hljs-constant" style="box-sizing: border-box;">I</span>./ -<span class="hljs-constant" style="box-sizing: border-box;">I</span>../../<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">include</span> -<span class="hljs-constant" style="box-sizing: border-box;">I</span>/opt/gtest/<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">include</span>
<span class="hljs-constant" style="box-sizing: border-box;">OBJS</span> = func.o funcTest.o

<span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">testAll:</span> <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$(</span><span class="hljs-constant" style="box-sizing: border-box;">OBJS</span>)
        <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$(</span><span class="hljs-constant" style="box-sizing: border-box;">CXX</span>) <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$(</span><span class="hljs-constant" style="box-sizing: border-box;">CXXFLAGS</span>) <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$(</span><span class="hljs-constant" style="box-sizing: border-box;">INCS</span>) -o testAll  main.cpp <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$(</span><span class="hljs-constant" style="box-sizing: border-box;">OBJS</span>) <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$(</span><span class="hljs-constant" style="box-sizing: border-box;">INCS</span>)

.cpp.<span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">o:</span>
        <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$(</span><span class="hljs-constant" style="box-sizing: border-box;">CXX</span>) <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$(</span><span class="hljs-constant" style="box-sizing: border-box;">CXXFLAGS</span>) -c <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$<</span> -o <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$@</span> <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$(</span><span class="hljs-constant" style="box-sizing: border-box;">INCS</span>)

<span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">clean:</span>
        rm testAll *.o 
</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li></ul>

运行: 
make 
./testAll

<code class="hljs css has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-attr_selector" style="color: rgb(0, 136, 0); box-sizing: border-box;">[==========]</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">Running</span> 1 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">test</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">from</span> 1 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">test</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">case</span>.
<span class="hljs-attr_selector" style="color: rgb(0, 136, 0); box-sizing: border-box;">[----------]</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">Global</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">test</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">environment</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">set-up</span>.
<span class="hljs-attr_selector" style="color: rgb(0, 136, 0); box-sizing: border-box;">[----------]</span> 1 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">test</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">from</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">AdditionTest</span>
<span class="hljs-attr_selector" style="color: rgb(0, 136, 0); box-sizing: border-box;">[ RUN      ]</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">AdditionTest</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.twoValues</span>
<span class="hljs-attr_selector" style="color: rgb(0, 136, 0); box-sizing: border-box;">[       OK ]</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">AdditionTest</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.twoValues</span> (0 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">ms</span>)
<span class="hljs-attr_selector" style="color: rgb(0, 136, 0); box-sizing: border-box;">[----------]</span> 1 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">test</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">from</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">AdditionTest</span> (0 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">ms</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">total</span>)

<span class="hljs-attr_selector" style="color: rgb(0, 136, 0); box-sizing: border-box;">[----------]</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">Global</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">test</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">environment</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">tear-down</span>
<span class="hljs-attr_selector" style="color: rgb(0, 136, 0); box-sizing: border-box;">[==========]</span> 1 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">test</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">from</span> 1 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">test</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">case</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">ran</span>. (0 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">ms</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">total</span>)
<span class="hljs-attr_selector" style="color: rgb(0, 136, 0); box-sizing: border-box;">[  PASSED  ]</span> 1 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">test</span>.
</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li></ul>

参考资料: 
http://www.yolinux.com/TUTORIALS/Cpp-GoogleTest.html#INSTALLATION

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值