C++相当于Python的doctests?

use*_*513 9 c++ doctest

我认为Python的doctests的概念很棒,作为一个实时商店的C++程序员,我非常嫉妒.我们基本上没有单元测试能力,这是一个严重的障碍.我已经看过C++ Unit等,但有没有什么可以从像Python的doctests这样的注释中提取测试用例而不是直接将它们放在代码中?

onq*_*tam 8

我刚刚发布了doctest - 最轻的功能丰富的C++单头测试框架.

它不是用于在注释中编写测试 - 而是用于直接在生产代码中编写测试.它不能完全满足您的需求,但它仍然是没有预处理步骤的C++中的最佳选择


小智 5

您可能会发现这很有用。在我自己的代码中需要它之后,我开始开发它。

http://github.com/panyam/DocTestPlusPlus

它是一个 python 脚本,它通过您的评论并提取测试并生成测试文件。

仍在开发和测试中。感谢任何和所有反馈。

干杯斯里


jmi*_*cza 1

我刚刚看了 doctest,它确实很棒。Python 语言的易用性也是如此。

然而,对于 C++,您可能找不到这样的工具。

如果其中一项测试失败,您可能需要调试发生的情况。从评论中生成测试用例的源代码并不那么容易。相反,在现有的 C++ 单元测试框架中,您可以使用具有特殊语法的测试源,该语法经过编译且易于调试。此外,从注释生成源代码将是另一个额外的(预)编译步骤,这只会让事情变得更加困难。

您应该承认,C++ 编码并不像 Python 那样快速,因此单元测试同样更加困难。另一方面,你有更多的工具,例如,你可以为类型关系添加静态断言,这在 Python 中是不可能的。

简而言之,我认为 C++ 的 Python doctest 与现有工具相比有很多缺点,以至于没有人开始实现它。

如果您确实认为它比现有工具更好,请提供一些示例。我几乎不相信现实生活中存在它可以更有用的案例。

  • “你应该接受,C++ 编码并不像 Python 那样快速”,这种态度正是使用 C++ 仍然令人痛苦的原因。 (2认同)