当gtest用例失败时做自己想做的事(4)

发表于:2012-11-09来源:博客园作者:jovenchen点击数: 标签:测试用例
通过上面介绍的接口,可以封装一个GetCurTestInfo的函数,并在用例body后的清理操作TearDown()中调用,当用例失败时就可以做自己想做的事情了,实现代码如

  通过上面介绍的接口,可以封装一个GetCurTestInfo的函数,并在用例body后的清理操作TearDown()中调用,当用例失败时就可以做自己想做的事情了,实现代码如下:

复制代码
 1 /**
 2 * @brief 获取当前用例执行信息
 3 * @param case_name 保存用例集名称
 4 * @param name 保存用例名称
 5 * @param [IN]len 缓冲区长度
 6 * @return bool 用例是否成功
 7 */
 8 bool GetCurTestInfo(char* case_name, char* name, const size_t len)
 9 {
10     const ::testing::TestInfo* curTest = ::testing::UnitTest::GetInstance()->current_test_info();
11     const char* cur_case_name = curTest->test_case_name();
12     const char* cur_name = curTest->name();    
13     strcpy_s(case_name, len, cur_case_name);
14     strcpy_s(name, len, cur_name);
15     const ::testing::TestResult* result = curTest->result();
16     return result->Passed();
17 }
复制代码
复制代码
 1 virtual void TearDown()
 2 {
 3     char casename[200] = {0};
 4     char name[200] = {0};
 5     if(!GetCurTestInfo(casename, name, 200))
 6        {
 7          …… // do something
 8        }
 9 }     
复制代码

  除了上述接口外,gtest还提供了很多获取用例相关信息的接口

原文转自:http://www.ltesting.net