测试 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】:

我使用过 CxxTestCppUnit,发现 CxxTest 更易于使用(它会自动生成一些框架代码 - 不利的一面是它需要 Python已安装)和轻量级(无库,完全基于标头)。

【讨论】:

以上是关于测试 C/C++ 源代码 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

C代码单元集成测试培训

不用创建项目,直接在VS里快速测试 C/C++ 代码。

针对c语言的程序,有啥好的测试工具

如何在 Visual Studio 中设置让 C++/C 代码只在一个线程中运行以测试运行时间?

C / C ++:删除不必要的包含[重复]

GCC C/C++双重行为[重复]