测试C / C ++源代码

Testing C/C++ source code

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicates:
Suggestion for UnitTest tools for C++
Choosing a C++ unit testing tool/framework
Unit Testing C Code

这是我一直想知道的,我们必须使用C / C ++作为我们的一些大学项目的基本语言:

在Java中有JUnit,

在PHP中有PHPUnit

等等

如何在C / C ++中完成单元测试? 这可能是一个愚蠢的问题,但我不认为我曾经读过应用程序(源代码)是如何进行单元测试的 - 如果在C / C ++中甚至有这样的东西 - 除了"检查代码是否编译"。


Boost拥有一个出色的单元测试库。


另一个是UnitTest ++。仅限标题,轻量级和简单的操作,并且可以完成所需的一切。


我们使用cunit:

http://cunit.sourceforge.net/

它允许一个逻辑(或功能)组测试,以XML格式生成测试输出以自动发布结果等。


有很多框架,但仅举几例:

  • http://code.google.com/p/googletest/
  • http://cpptest.sourceforge.net/

有些人只会使用#ifdefs和一个test.c或test.cpp文件自行编写角色:

1
2
3
4
5
6
7
#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是数字)来生成测试,这将为每个测试生成可执行文件。也许不理想但很简单。


cppunit是我们使用的。


我已经使用了CxxTest和CppUnit,发现CxxTest更容易使用(它自动生成一些框架代码 - 它需要安装Python的缺点)和轻量级(没有库,完全基于头)。