一日一技:使用doctest测试Python代码的注释

简介: 一日一技:使用doctest测试Python代码的注释

摄影:产品经理厨师:kingname

如果大家看过一些有名的Python开源项目,你可能会看到他们在文档型注释里面,出现了下面这样的使用示例:

"""
Requests HTTP Library
~~~~~~~~~~~~~~~~~~~~~
Requests is an HTTP library, written in Python, for human beings.
Basic GET usage:
   >>> import requests
   >>> r = requests.get('https://www.python.org')
   >>> r.status_code
   200
   >>> b'Python is a programming language' in r.content
   True
...
"""

这段代码来自 requestshttps://github.com/psf/requests/blob/master/requests/__init__.py

可能有同学会觉得,这只是普通的注释,帮助读代码的人知道这段代码是怎么用的。

但实际上,Python自带的 doctest模块,可以识别这种注释,并根据这里的用法来测试对应的函数或者类。

例如,我们创建一个 test_doc.py文件,其内容如下:

def test(n):
    """
    用于判断传入参数n的奇偶性
    >>> test(1)
    1是奇数
    >>> test(2)
    2是偶数
    """
    if n % 2 == 0:
        print(f'{n}是偶数')
    else:
        print(f'{n}是奇数')

如下图所示

现在我们运行如下代码:

python3 -m doctest test_doc.py

发现没有任何输出,如下图所示:

现在,我们把这个注释 改错,让注释与实际情况不符合,如下图所示:

保存代码,再次运行命令,发现报错了,如下图所示:

返回的报错信息里面:

Failed example:
    test(1)
Expected:
    1是偶数
Got:
    1是奇数

Expected表示期望的输出结果, Got表示实际的输出结果。

通过使用doctest,可以有效帮你完善函数或者类的文档,并且当你每次修改了函数或类的时候,都用doctest来检查一下,如果输入输出发生了改变,doctest就会发现并告诉你。

目录
相关文章
|
1天前
|
测试技术
使用CLion创建Cmake项目,使用GoogleTest和GoogleMock对代码进行测试
使用CLion创建Cmake项目,使用GoogleTest和GoogleMock对代码进行测试
12 3
|
2天前
|
监控 测试技术 持续交付
Python自动化测试代理程序可用性
总之,通过编写测试用例、自动化测试和设置监控系统,您可以确保Python自动化测试代理程序的可用性,并及时发现和解决问题。这有助于提供更可靠和高性能的代理服务。
11 4
|
5天前
|
机器学习/深度学习 算法 UED
【Python 机器学习专栏】A/B 测试在机器学习项目中的应用
【4月更文挑战第30天】A/B测试在数据驱动的机器学习项目中扮演关键角色,用于评估模型性能、算法改进和特征选择。通过定义目标、划分群组、实施处理、收集数据和分析结果,A/B测试能帮助优化模型和用户体验。Python提供工具如pandas和scipy.stats支持实验实施与分析。注意样本量、随机性、时间因素和多变量分析,确保测试有效性。A/B测试助力于持续改进机器学习项目,实现更好的成果。
|
5天前
|
自然语言处理 数据可视化 数据挖掘
数据代码分享|Python对全球Covid-19疫情失业数据相关性、可视化分析
数据代码分享|Python对全球Covid-19疫情失业数据相关性、可视化分析
10 0
|
5天前
|
安全 网络安全 Python
使用 Python 代码实现 ICMP Timestamp 请求和回应
使用 Python 代码实现 ICMP Timestamp 请求和回应
|
6天前
|
SQL DataWorks Java
DataWorks操作报错合集之在阿里云 DataWorks 中,代码在开发测试阶段能够成功运行,但在提交后失败并报错“不支持https”如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
21 1
DataWorks操作报错合集之在阿里云 DataWorks 中,代码在开发测试阶段能够成功运行,但在提交后失败并报错“不支持https”如何解决
|
6天前
|
Linux iOS开发 MacOS
pyinstaller---Python代码的打包神器,一键将python代码打包成exe可执行文件
pyinstaller---Python代码的打包神器,一键将python代码打包成exe可执行文件
|
6天前
|
缓存 Python
Python 中的装饰器:提升代码可读性和灵活性的利器
装饰器是 Python 中一种强大的工具,它能够在不修改原有代码的情况下,增加新的功能和行为。本文将深入探讨装饰器的原理、用法以及在实际开发中的应用场景,帮助读者更好地理解并运用装饰器来提升代码的可读性和灵活性。
|
6天前
|
测试技术 Python
python运行集成测试
【4月更文挑战第22天】
7 1
|
6天前
|
测试技术 Python
python编写集成测试
【4月更文挑战第22天】
4 1