Google Test(gtest) 快速入门
Gogole Test 是一种 C++ 单测框架。本文以 xmake + xrepo 进行构建和包管理为例。
安装
xmake
1xrepo install gtest
集成到项目
xmake
我采用常见布局(src/
, /include
,xmake.lua
)
首先建立一个目录比如 test
,然后此目录中创建 xmake.lua
内容如下:
1add_requires("gtest")
2
3target("unitest")
4 set_kind("binary")
5 add_packages("gtest")
6 set_default(false)
7 add_files("*.cpp")
这其实是创建了一个 sub target, 因此需要 get included to parent level. 方法很简单,root level 的 xmake.lua
增加一行:
includes("test")
然后我们创建几个测试看看:
test/add_test.cpp 3:
1#include <gtest/gtest.h>
2
3TEST(MY_TEST_SUITE, ADD_TEST) { EXPECT_EQ(1 + 1, 2); }
test/main.cpp 6:
1#include <gtest/gtest.h>
2
3int _tmain(int argc, char* argv[]) {
4 testing::InitGoogleTest(&argc, argv);
5 return RUN_ALL_TESTS();
6}
这样,只要执行
1xmake build unitest
即可编译 unitest
执行
1xmake run unitest
即可运行测试
常用操作
禁用一个测试
使用 DISABLED_
名称前缀可对 Test Suite 或 Test 禁用。
使用 GTEST_SKIP
可按条件禁用
1TEST(Foo, Bar)
2{
3 if (blah)
4 GTEST_SKIP();
5
6 ...
7}
使用命令行参数 --gtest_filter=*foo1*:*foo2*-*bar1*:*bar2*
可在终端运行时禁用。