gtest在linux下编译测试用例

研究gtest有一段时间了 主要是参照coderZH的《玩转Google开源C++单元测试框架Google Test系列》 来进行学习,但他的编译环境是基于windows的,所以有些地方还是很不一样。因此特意将自己的编译过程记录一下.

首先,将如下代码写入到命名为Footest.cc的文件中:

int Foo(int a, int b)
{
    if (a == 0 || b == 0)
    {
        throw "don't do that";
    }
    int c = a % b;
    if (c == 0)
        return b;
    return Foo(b, c);
}


这里所定义的是被测函数Foo

下面是被命名为Footest_unittest.cc的测试案例:

#include <gtest/gtest.h>
#include "Footest.cc"

TEST(FooTest, HandleNoneZeroInput)
{
    EXPECT_EQ(2, Foo(4, 10));
    EXPECT_EQ(6, Foo(30, 18));
}

接下来就是与coderZH不同的地方了,linux下gtest用例的编译:

第一步:

libtool --mode=compile gcc -g -O -c Footest.cc

第二步:

libtool --mode=compile gcc -I ../include/ -g -O -c Footest_unittest.cc

第三步:

libtool --mode=link gcc -g -O -o Footest Footest_unittest.o ../lib/libgtest_main.la -lm


这里所有的步骤都是在gtest-1.6.0/samples目录下执行的。

编译成功生成Footest程序,执行结果如下:


rony-nb@rony-nb:~/codes/gtest-1.6.0/samples$ ./Footest
Running main() from gtest_main.cc
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from FooTest
[ RUN      ] FooTest.HandleNoneZeroInput
[       OK ] FooTest.HandleNoneZeroInput (0 ms)
[----------] 1 test from FooTest (0 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (0 ms total)
[  PASSED  ] 1 test.



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值