【问题标题】:Unit testing framework for C++ that doesn't need to preprocess the code无需预处理代码的 C++ 单元测试框架
【发布时间】:2011-05-19 08:37:57
【问题描述】:

有几个主要的单元测试框架,但据我所知,它们都需要以某种方式处理源代码。

例如,我正在使用 cxxunit,它需要使用一些 python 脚本来处理单元测试。这样做的问题是它增加了构建时间。

有人知道不预处理单元测试代码的 C++ 代码单元测试框架吗?

PS:linux需要,多平台也可以。

【问题讨论】:

  • doh 我不敢相信在所有单元测试框架中,我们都被一个需要预处理的框架卡住了:(
  • 鉴于 C++ 极短的构建时间,这种预处理真的相关吗?
  • @sbi 是的,因为我有很多单元测试。只改变一个,预处理它们需要很长时间(而且我的开发机器是一头野兽)。无需预处理,几乎可以立即重建单元测试。
  • @sbi 忘了补充:如果单元测试重新编译需要很长时间,TDD(或 BDD)就不能很好地工作。

标签: c++ linux unit-testing frameworks c-preprocessor


【解决方案1】:

您可以使用Boost.Test。我有很好的经验。它不需要任何特殊的预处理。

【讨论】:

    【解决方案2】:

    您可以使用google test 框架。您只需要一次构建库源代码。然后您可以将您的测试创建为.cpp 文件,然后将它们与gtest 和所需的项目库编译并链接为普通c++ 源。

    除此之外,它是多平台的。

    【讨论】:

      【解决方案3】:

      我对@9​​87654321@ 很满意。

      【讨论】:

        【解决方案4】:

        CPPUnit 是我目前的个人选择,使用纯 C++。

        【讨论】:

          【解决方案5】:

          我一直在使用 TestDog。您使用要测试的代码构建您的测试,它会生成 HTML 输出摘要。

          【讨论】:

            【解决方案6】:

            我建议在您的评估中也考虑 Andrew Marlow 的 FRUCTOSE http://fructose.sourceforge.net/...他是一位非常彻底和专业的开发人员,在制作自己的报价之前会仔细比较现有报价。另请参阅 ACCU 文章讨论库:http://accu.org/index.php/journals/1305

            【讨论】:

            • 谢谢。我一直在关注他在 clc++ 上的帖子,怀疑他做错了。
            • 我刚查了一下,它有一个python脚本来生成用于单元测试的main()。这正是我想要避免的。
            • VJo:哦,天哪……我敢肯定他有他的理由,但可以很好地理解,在你的情况下,这可能是一个阻碍。很抱歉没有亲自检查....
            猜你喜欢
            • 1970-01-01
            • 2013-02-13
            • 2010-09-10
            • 1970-01-01
            • 1970-01-01
            • 2010-09-09
            • 2017-01-22
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多