我已经阅读了很多关于单元测试和测试驱动开发的文章。最近,我还读了java单元测试代码。然而,我更喜欢用Qt开发。所以我在谷歌上搜索了“c中的单元测试”,找到了大量关于C可用的各种单元测试框架的信息。但是,我找不到各种框架的可靠比较。因此,我期待SO社区指导我选择什么可能是C++的“最佳”单元测试框架。此外,如果有人对Qt中的TDD(特别是使用Qt-Creator)有具体的评论,那么他们非常受欢迎。
g9icjywg1#
通常使用Boost,但如果你使用Qt,他们的QtTestLib可能是更好的选择。
yb3bgrhw2#
我推荐doctest(由我创建)-它是所有流行测试框架中编译时间最短的。它也是Catch的直接竞争对手,Catch是目前使用最多的框架-在FAQ中查看差异
flvtvl503#
这似乎也是同样的问题:Unit testing in C++实际上是c++,尽管有URL标题。从那里,他们链接到另外两个SO问题,这应该有所帮助:Unit testing for C++ code - Tools and methodologyC++ unit testing framework
3vpjnl9f4#
维基百科上有一个表格比较了所有的C单元测试框架。还有一个旧的comparison of C++ unit test frameworks可用。我不认为它没有被更新,所以我提到它作为补充,因为它比表更有争议。它涵盖了,CppUnit,CppUnitLite,Boost.Test,NanoCppUnit,Unit,CxxTest,特别是它没有涵盖Google C++ framework。
holgip5t5#
“xUnit”系列的测试框架通常都很可靠(jUnit、NUnit等)。我自己还没有用过,但是有一个针对C++的jUnit移植:http://sourceforge.net/projects/cppunit
qxsslcnc6#
Boost通常是一个不错的选择,它包含一个测试框架Boost Test Library。我曾将其用于小型测试用例,它达到了我的预期,但我没有像在TTD中那样广泛使用它。
rvpgvaaj7#
如果你想快速起步,而不想弄清楚如何构建一个库,有一个单一的头文件包含解决方案,它支持fixture(安装和拆卸),通常的TEST(){} with fixture_TRUE等,它还具有内存泄漏检测和性能测试功能。https://gitlab.com/cppocl/unit_test_framework
7条答案
按热度按时间g9icjywg1#
通常使用Boost,但如果你使用Qt,他们的QtTestLib可能是更好的选择。
yb3bgrhw2#
我推荐doctest(由我创建)-它是所有流行测试框架中编译时间最短的。它也是Catch的直接竞争对手,Catch是目前使用最多的框架-在FAQ中查看差异
flvtvl503#
这似乎也是同样的问题:
Unit testing in C++实际上是c++,尽管有URL标题。
从那里,他们链接到另外两个SO问题,这应该有所帮助:
Unit testing for C++ code - Tools and methodologyC++ unit testing framework
3vpjnl9f4#
维基百科上有一个表格比较了所有的C单元测试框架。
还有一个旧的comparison of C++ unit test frameworks可用。我不认为它没有被更新,所以我提到它作为补充,因为它比表更有争议。它涵盖了,CppUnit,CppUnitLite,Boost.Test,NanoCppUnit,Unit,CxxTest,特别是它没有涵盖Google C++ framework。
holgip5t5#
“xUnit”系列的测试框架通常都很可靠(jUnit、NUnit等)。我自己还没有用过,但是有一个针对C++的jUnit移植:
http://sourceforge.net/projects/cppunit
qxsslcnc6#
Boost通常是一个不错的选择,它包含一个测试框架Boost Test Library。我曾将其用于小型测试用例,它达到了我的预期,但我没有像在TTD中那样广泛使用它。
rvpgvaaj7#
如果你想快速起步,而不想弄清楚如何构建一个库,有一个单一的头文件包含解决方案,它支持fixture(安装和拆卸),通常的TEST(){} with fixture_TRUE等,它还具有内存泄漏检测和性能测试功能。
https://gitlab.com/cppocl/unit_test_framework