【问题标题】:Testing C/C++ source code [duplicate]测试 C/C++ 源代码 [重复]
【发布时间】:2011-04-17 01:50:31
【问题描述】:

可能的重复:
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++ 中有这样的东西——除了“检查代码是否编译”。

【问题讨论】:

标签: c++ c unit-testing


【解决方案1】:

Boost 有一个出色的 unit test 库。

【讨论】:

    【解决方案2】:

    cppunit 是我们使用的。

    【讨论】:

      【解决方案3】:

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

      有些人只会使用 #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已安装)和轻量级(无库,完全基于标头)。

            【讨论】:

              猜你喜欢
              • 2012-12-06
              • 1970-01-01
              • 1970-01-01
              • 2011-05-07
              • 2013-02-24
              • 1970-01-01
              • 1970-01-01
              • 2011-07-31
              • 2012-05-15
              相关资源
              最近更新 更多