| 主分支 | ||
| 开发分支 |
doctest是一个新的C ++测试框架,但与其他功能丰富的替代方案相比,迄今为止(按数量级)和运行时是最快的。它带来了诸如D / Rust / Nim之类的编译语言的能力,这要归功于具有干净界面的快速,透明和灵活的测试跑者,因此可以直接在生产代码中编写测试。
该框架是并且将保持自由,但需要您的支持来维持其发展。有很多新功能和维护要做。如果您在使用doctest公司工作或有能力这样做,请考虑财务支持。每月通过Patreon捐款和一次性通过PayPal捐款。
一个完整的示例,具有自注册测试,将其编译为可执行的外观:
有许多C ++测试框架 – 捕获,boost.test,Untest ++,cpputest,googletest等。
IT和其他测试框架之间的关键区别在于它是轻巧且不感知的:
- 在包括标题和编写数千个断言的情况下,编译时间的超灯
- 即使在MSVC / GCC / Clang的最激进的警告级别上也不会发出任何警告
- 可以使用doctest _config_disable标识符从二进制中删除与测试相关的所有内容
- 线程安全– 可以从单个测试用例产生的多个线程中使用断言 –示例
- 断言可以在测试上下文之外使用 – 作为通用断言库 –示例
- 没有全球名称空间污染(一切都在doctest中::)&不拖动任何标题
- 便携式C ++ 11(C ++ 98使用标签1.2.9 ),具有100多种不同的CI构建(静态分析,消毒剂..)
- 二进制文件(EXE/DLL)可以使用单个注册表中的另一个二进制=>测试的测试跑者 –示例
这允许以比任何其他方式使用更多的方式使用该框架 – 可以直接在生产代码中写入测试!
测试可以是文档的一种形式,应该能够驻留在他们测试的生产代码附近。
- 这使得编写测试的障碍要低得多– 您不必: 1)制作一个单独的源文件2)在其中包含一堆东西3)将其添加到构建系统中, 4)将其添加到源控件中 – 您只需在其源文件的底部编写一个类别或功能的测试,甚至可以将其添加到源文件的底部 – 甚至是标题文件!
- 生产代码中的测试可以被视为文档/最新评论 – 展示API
- 测试未通过公共API和标头曝光的内部设备不再是一种弯曲的练习
- C ++中的测试驱动开发从未如此简单!
框架可以像其他任何人一样使用,而无需混合生产代码和测试 – 查看功能。
doctest是在捕获后建模的,并且已直接采用了代码的某些部分 – 查看差异。
该表比较了非常相似的doctest / Catch / catch / fast / catch / f 。
在YouTube上查看CPPCON 2017 Talking ,以更好地了解该框架的工作原理,并在Jetbrains文章中阅读有关如何使用它的信息 – 突出显示框架的独特方面!在有关如何在生产代码上使用框架的简短说明,您可以参考此GitHub问题。 2月份ACCU Overload 2017中还有一篇较旧的文章。
文档
项目:
- 功能和设计目标 – 功能的完整列表
- 社区驱动的路线图 – 即将到来的功能
- 基准 – 编译时间和运行时至上
- 贡献 – 如何提出适当的拉请请求
- ChangElog-基于封闭的问题/PR生成的变形值
用法:
- 教程 – 确保您已经阅读了文档的其他部分
- 断言宏
- 测试用例,子速率和测试固定装置
- 参数化测试用例
- 命令行
- 记录宏
- main()入口点
- 配置
- 字符串转换
- 记者
- 扩展
- 常问问题
- 构建系统
- 例子
错误和功能建议
如果找到错误,请报告!如果您对如何改进项目有一个想法,那么从更好的文档到添加新功能,请考虑准备功能建议。我们之所以将其称为建议,是因为“请求”一词的意图错误,没有人会自动为您修复它,但是在您实施之前,可以讨论,接受或拒绝这个想法。在提交任何问题之前,请确保阅读贡献页面,并在此处记录分类程序。
贡献
通过捐款支持项目的开发!有一系列计划的功能列表,这些功能都很重要,而且很大 – 请参阅路线图。
如果您在使用doctest公司工作或有能力这样做,请考虑财务支持。
也欢迎以问题和拉请求形式的贡献 – 查看贡献页面。
随着时间的流逝,观星者
标识
该徽标是根据创意共享归因4.0国际许可证获得许可的。版权所有©2019 Area55Git
