关闭

玩转Google单元测试框架gtest系列之六:运行参数

发表于:2010-4-09 14:30

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:CoderZh    来源:www.cnblogs.com/coderzh

  四、XML报告输出格式

<?xml version="1.0" encoding="UTF-8"?>
<testsuites tests="3" failures="1" errors="0" time="35" name="AllTests">
  
<testsuite name="MathTest" tests="2" failures="1"* errors="0" time="15">
    
<testcase name="Addition" status="run" time="7" classname="">
      
<failure message="Value of: add(1, 1)  Actual: 3 Expected: 2" type=""/>
      
<failure message="Value of: add(1, -1)  Actual: 1 Expected: 0" type=""/>
    
</testcase>
    
<testcase name="Subtraction" status="run" time="5" classname="">
    
</testcase>
  
</testsuite>
  
<testsuite name="LogicTest" tests="1" failures="0" errors="0" time="5">
    
<testcase name="NonContradiction" status="run" time="5" classname="">
    
</testcase>
  
</testsuite>
</testsuites>

  从报告里可以看出,我们之前在TEST等宏中定义的测试案例名称(testcase_name)在xml测试报告中其实是一个testsuite name,而宏中的测试名称(test_name)在xml测试报告中是一个testcase name,概念上似乎有点混淆,就看你怎么看吧。

  当检查点通过时,不会输出任何检查点的信息。当检查点失败时,会有详细的失败信息输出来failure节点。

  在我使用过程中发现一个问题,当我同时设置了--gtest_filter参数时,输出的xml报告中还是会包含所有测试案例的信息,只不过那些不被执行的测试案例的status值为“notrun”。而我之前认为的输出的xml报告应该只包含我需要运行的测试案例的信息。不知是否可提供一个只输出需要执行的测试案例的xml报告。因为当我需要在1000个案例中执行其中1个案例时,在报告中很难找到我运行的那个案例,虽然可以查找,但还是很麻烦。

  五、总结

  本篇主要介绍了gtest案例执行时提供的一些参数的使用方法,这些参数都非常有用。在实际编写gtest测试案例时肯定会需要用到的时候。至少我现在比较常用的就是:

  1. --gtest_filter

  2. --gtest_output=xml[:DIRECTORY_PATH\|:FILE_PATH]

  3. --gtest_catch_exceptions

  最后再总结一下我使用过程中遇到的几个问题:

  1. 同时使用--gtest_filter和--gtest_output=xml:时,在xml测试报告中能否只包含过滤后的测试案例的信息。

  2. 有时,我在代码中设置 testing::GTEST_FLAG(catch_exceptions) = 1和我在命令行中使用--gtest_catch_exceptions结果稍有不同,在代码中设置FLAG方式有时候捕捉不了某些异常,但是通过命令行参数的方式一般都不会有问题。这是我曾经遇到过的一个问题,最后我的处理办法是既在代码中设置FLAG,又在命令行参数中传入 --gtest_catch_exceptions。不知道是gtest在catch_exceptions方面不够稳定,还是我自己测试案例的问题。


相关链接:

玩转Google单元测试框架gtest系列之五:死亡测试

玩转Google单元测试框架gtest系列之四:参数化

玩转Google单元测试框架gtest系列之三:事件机制

玩转Google单元测试框架gtest系列之二:断言

玩转Google单元测试框架gtest系列之一:初识gtest

44/4<1234
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号