测试 C/C++ 源代码 [重复]
Posted
技术标签:
【中文标题】测试 C/C++ 源代码 [重复]【英文标题】:Testing C/C++ source code [duplicate] 【发布时间】:2011-04-17 01:50:31 【问题描述】:可能的重复:Suggestion for UnitTest tools for C++Choosing a C++ unit testing tool/frameworkUnit Testing C Code
这是我现在一直想知道的,因为我们必须使用 C/C++ 作为我们一些大学项目的基础语言:
在Java中有JUnit,
在 php 中有 PHPUnit
等等
如何在 C/C++ 中进行单元测试?这可能是一个愚蠢的问题,但我想我从来没有读过应用程序(源代码)是如何进行单元测试的——如果 C/C++ 中有这样的东西——除了“检查代码是否编译”。
【问题讨论】:
JUint, PHPUnit...嗯,那里有一个模式...也许CUnit? ***.com/questions/3751169/… ***.com/questions/2523584/… ***.com/questions/65820/unit-testing-c-code, ***.com/questions/13699/… 【参考方案1】:Boost 有一个出色的 unit test 库。
【讨论】:
【参考方案2】:cppunit 是我们使用的。
【讨论】:
【参考方案3】:有很多框架,但仅举几例:
http://code.google.com/p/googletest/ http://cpptest.sourceforge.net/有些人只会使用 #ifdefs 和单个 test.c 或 test.cpp 文件来扮演自己的角色:
#ifdef TEST_1
int main(int argc, char** argv) /*test code for 1*/
#endif
#ifdef TEST_2
int main(int argc, char** argv) /*test code for 2*/
#endif
在编译时,您可以通过定义 TEST_x(其中 x 是一个数字)来生成测试,这将为每个测试生成可执行文件。也许不理想但非常简单。
【讨论】:
【参考方案4】:我们使用 cunit:
http://cunit.sourceforge.net/
它允许对测试进行逻辑(或功能)分组,以 XML 格式生成测试输出以自动发布结果等。
【讨论】:
【参考方案5】:另一个是UnitTest++。仅页眉,轻量级和简单的操作,却能做所有需要的事情。
【讨论】:
【参考方案6】:我使用过 CxxTest 和 CppUnit,发现 CxxTest 更易于使用(它会自动生成一些框架代码 - 不利的一面是它需要 Python已安装)和轻量级(无库,完全基于标头)。
【讨论】:
以上是关于测试 C/C++ 源代码 [重复]的主要内容,如果未能解决你的问题,请参考以下文章