当前位置: 首页 > news >正文

Doctest:让你的测试更简单高效

简介:Doctest 是 Python 标准库的一部分,它允许开发者通过在文档字符串(docstrings)中编写示例来进行测试。这不仅可以在确保代码正确性的同时编写文档,还可以让读者更容易理解代码的用法和期望的输出。

对比 unittest、pytest 优势:

1、简洁性:与 unittest 和 pytest 相比,Doctest 的语法更为简洁,它将测试示例写在文档字符串中,让测试看起来更清晰、易读。

2、直观性:通过阅读 Doctest 中的示例,开发者和用户能够快速理解函数或方法的用法。

3、易用性:Doctest 不需要额外的安装和配置,它是 Python 标准库的一部分,可以直接使用。

安装:Doctest 是 Python 的内置库,不需要额外的安装。

参数说明:常见的参数:

  1. -v:启用详细模式,显示所有测试用例的输出结果。

  2. doctest.testmod():运行当前模块中的所有 Doctest。

  3. verbose 参数,如果设置为True则在执行测试的时候会输出详细信息。

  4. 默认是False,表示运行测试时,只有失败的用例会输出详细信息,成功的测试用例不会输出任何信息。

案例:测试加法函数测试字符串反转函数、在类对象方法的使用。

  1. # -*- coding: utf-8 -*-

  2. # time: 2023/9/26 0:47

  3. # file: doctest_demo.py

  4. import doctest

  5. def add(a, b):

  6. """

  7. # case1 加法函数

  8. This function adds two numbers and returns the sum.

  9. >>> add(2, 3)

  10. 5

  11. >>> add(-1, 1)

  12. 0

  13. """

  14. return a + b

  15. def reverse_string(s):

  16. """

  17. # case2 翻转字符串函数

  18. This function returns the reversed string.

  19. >>> reverse_string('hello')

  20. 'olleh'

  21. >>> reverse_string('Python')

  22. 'nohtyP'

  23. """

  24. return s[::-1]

  25. class Cat:

  26. def __init__(self, name, age):

  27. self.name = name

  28. self.age = age

  29. def fishing(self):

  30. """

  31. >>> c = Cat('tom', 5)

  32. >>> c.fishing()

  33. tom is a cat, 5 years old, and now he is fishing.

  34. True

  35. >>> c = Cat('Lucy', 22)

  36. >>> c.fishing()

  37. Lucy is too old to fish.

  38. False

  39. >>> c = Cat('Lily', 1)

  40. >>> c.fishing()

  41. Lily is too young to fish yet.

  42. False

  43. """

  44. if 2 <= self.age <= 20:

  45. print(f"{self.name} is a cat, {self.age} years old, and now he is fishing.")

  46. return True

  47. elif self.age < 2:

  48. print(f"{self.name} is too young to fish yet.")

  49. return False

  50. else:

  51. print(f"{self.name} is too old to fish.")

  52. return False

  53. if __name__ == '__main__':

  54. doctest.testmod(verbose=True)

运行结果:

不符合预期时:

注意事项:确保测试用例的输出结果与示例中的完全匹配,包括空格和换行。Doctest 更适用于简单的、不需要太多设置和清理的测试场景。

总结:Doctest 是一个简单、直观、易用的测试框架,它通过文档字符串中的示例让你能够快速编写和理解测试。与其他测试框架相比,Doctest 为简单的测试场景提供了一个清晰、高效的解决方案。在日常的 Python 开发中,合理利用 Doctest 可以帮助你更好地保证代码的正确性和质量。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

http://www.jsqmd.com/news/220621/

相关文章:

  • 十分钟玩转Llama Factory:零基础快速搭建你的第一个对话模型
  • RAG系统如何集成语音输出?Sambert-Hifigan API无缝对接langchain
  • 前端如何调用TTS API?提供curl示例与JavaScript代码片段
  • Transformer与Hifigan结合优势分析:高质量中文TTS生成技术指南
  • 揭秘LLaMA Factory:如何用云端GPU快速微调你的专属AI助手
  • 5分钟极速上手:用LLaMA-Factory和云端GPU打造你的第一个AI聊天机器人
  • Llama Factory微调显存不足?云端GPU一键解决
  • 如何更有效地说服开发接收你的bug
  • Llama Factory微调显存不足?云端GPU一键解决
  • apifox怎么测试API,你学会了吗?
  • 灰度测试是什么?
  • Llama Factory可视化:无需代码快速定制你的对话AI
  • 京东关键词API接口获取
  • Sambert-HifiGan语音合成在AR/VR中的应用
  • 如何实现测试自动化?
  • 提升Sambert-HifiGan合成质量的7个实用技巧
  • 从 0 到 1:用 RPA 技术实现企业微信外部群 自动化管理
  • Sambert-HifiGan语音合成服务的监控与告警
  • PYCHARM激活模拟器:安全测试你的激活方案
  • PYCHARM激活模拟器:安全测试你的激活方案
  • 模型对比实验:LLaMA Factory多框架性能基准测试
  • Sambert-HifiGan在机场车站的智能广播系统应用
  • 为何选择Sambert-Hifigan?WebUI交互+API调用满足多场景需求
  • 2026年AI语音新趋势:开源多情感TTS+WebUI,低成本落地企业客服系统
  • 省钱又省心:利用LLaMA Factory云端GPU低成本微调大模型
  • 企业如何利用Sambert-HifiGan降低语音合成外包成本?
  • Sambert-HifiGan+GPT-3.5双模型协作:打造更智能的语音助手
  • 宽禁带半导体材料与器件技术:氧化锌
  • Sambert-HifiGan在智能客服中的情感表达技巧
  • Sambert-Hifigan部署避坑指南:常见端口冲突与权限问题解决方案