首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

如果大家看过一些有名的Python开源项目,你可能会看到他们在文档型注释里面,出现了下面这样的使用示例: """ Requests HTTP Library ~~~~~~~~~~~~~~~~~~~~...但实际上,Python自带的 doctest模块,可以识别这种注释,并根据这里的用法来测试对应的函数或者类。...: python3 -m doctest test_doc.py 发现没有任何输出,如下图所示: 现在,我们把这个注释 改错,让注释与实际情况不符合,如下图所示: 保存代码,再次运行命令,发现报错了,如下图所示...通过使用doctest,可以有效帮你完善函数或者类的文档,并且当你每次修改了函数或类的时候,都用doctest来检查一下,如果输入输出发生了改变,doctest就会发现并告诉你。...doctest的详细使用,可以阅读Python的官方文档:https://docs.python.org/3/library/doctest.html

62920

测试代码你会犯的 11 个错误

关于如何命名测试有几种流行的约定。无论你使用哪一种都没有关系,只要你能够一贯使用,并准确描述正在测试什么。 6.让测试做太多事情 又长又复杂的名字通常说明了你想同时测试多件事情。...这是一个错误。只用一种类型的测试,你就不能充分测试系统的所有部分。你需要单元测试来确认代码的各个组件是否能够正确工作。你需要集成测试来确认不同组件是否能够协同工作。...你需要自动化UI测试来验证软件是否可以如预期使用。最后,你需要为任何不容易自动化的部分和探索性尝试进行手动测试。 10.着眼于短期测试 来自于测试的价值大多数会随着时间的推移而获得。...有回归错误或新的异常,那么测试应该重复运行以尽早发现问题,这将意味着错误和异常可以更快,更便宜和更容易被修复。没有变化(人为错误)可自动和快速执行的测试,是为什么编码测试如此有价值的原因。...这不仅是一个坏的测试方式,而且也是团队工作的糟糕方式。不要这样做。代码能够正确执行是专业开发人员的部分属性。要保证代码的准确性,方法是使用伴随它的适当测试

34220
您找到你想要的搜索结果了吗?
是的
没有找到

Python运行环境与异常处理

打印版本信息 -x 跳过源程序的第一行 -c cmd 以字符串形式执行cmd 2、doctest代码测试模块   Doctest模块允许在文档字符串内嵌入注释以显示各种语句的期望行为,尤其是函数和方法的结构...num1+num2   使用doctest模块进行测试: In [1]: import test In [2]: import doctest In [3]: doctest.testmod(test)...Test passed. 3、Python的异常处理   在一些编程语言中,错误是通过特殊的函数返回值指出的,而Python使用异常,它是只有错误发生执行的代码。...Python可以通过异常传导机制传递一个异常对象,发出一个异常情况出现的信号;程序员也可以在代码中手动触发异常。Python异常可以理解为:程序员出现了错误而在正常控制流以外采取的行为。...如果运行python使用了-O优化选项,assert将是一个空操作,编译器不为assert语句生成代码

1.2K10

Day13错误、调试和测试

END 当我们认为某些代码可能会出错,就可以用try来运行这段代码,如果执行出错,则后续代码不会继续执行,而是直接跳转至错误处理代码,即except语句块,执行完except后,如果有finally语句块...如果没有错误发生,可以在except语句块后面加一个else,当没有错误发生,会自动执行else语句: try: print('try...')...END Python错误其实也是class,所有的错误类型都继承自BaseException,所以在使用except需要注意的是,它不但捕获该类型的错误,还把其子类也“一网打尽”。...doctest)模块可以直接提取注释中的代码并执行测试。...doctest严格按照Python交互式命令行的输入和输出来判断测试结果是否正确。只有测试异常的时候,可以用...表示中间一大段烦人的输出。

79690

vscode写python代码错误提醒和自动格式化的方法

python代码错误检查通常用pep8、pylint和flake8,自动格式化代码通常用autopep8、yapf、black。...【温馨提醒】 要使用flake8或要想flake8等工具起作用,前提是必须把settings.json文件中的"python.linting.enabled"值设为“true”,否则即使安装了这些工具...,也起不到代码错误提醒。...PowerShell窗口(win10以前的版本是可以直接打开命令行窗口) 2.输入:cmd,回车运行 3.输入:pip install flake8,回车等待运行结果即可 【在Vscode中安装】 代码错误工具以.../b819597d9661 到此这篇关于vscode写python代码错误提醒和自动格式化的方法的文章就介绍到这了,更多相关vscode写python 内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持

7.2K31

使用ChatGPT给Python代码写单元测试

先写一个简单的python函数,找chatgpt写单元测试: 有一个python函数,请帮忙写单元测试,函数长这样: def test2(a: list, b: list) -> float:...执行这个测试函数,最后一个assert是通不过的。 尝试让它进行修正: 上面最后一个assert测试不通过 它的回复: 感谢您指出这个问题。我重新检查了代码并发现我的错误。...以下是已修复的测试用例: ```python import math def test_test2(): # 测试两个坐标点在平面内的情况 assert math.isclose(test2...这个测试是通不过的,不过基本代码有了,也能考虑边界值,让它再提升提升: 这个覆盖率还不够,请提高一下覆盖率 得到的结果: 好的,下面是增加覆盖率后的测试用例: ```python def test_distance_hy...结论 写代码的能力有点超出预期,感觉程序猿们真的要好好考虑怎么和AI进行协同工作了: AI可以快速地写出大量的代码,人再对其进行微调,以后程序员最重要的能力可能是:能把复杂事务进行模块化的能力。

25630

如何使用Frelatage对Python代码进行模糊测试

关于Frelatage Frelatage是一款基于覆盖率的Python模糊测试工具,在该工具的帮助下,广大研究人员可以轻松对Python代码进行模糊测试。...其主要目的是整合优化了其他模糊测试工具的优秀特性,以便帮助研究人员以更高效的方式对Python应用程序进行模糊测试和安全研究。...wget -q https://raw.githubusercontent.com/Rog3rSm1th/Frelatage/main/scripts/autoinstall.sh -O -) 工具使用.../dict" && python3 fuzzer.py 接下来,我们就可以向模糊测试工具传递参数了: import frelatage def myfunction(input1_string,...需要考虑的例外情况 exceptions_whitelist=(OSError), # 需要排除的例外情况 exceptions_blacklist=(), # 存储错误报告的目录

1.7K10

Python学习笔记(八)·错误、调试和测试

如果可以选择Python已有的内置的错误类型(比如ValueError,TypeError),尽量使用Python内置的错误类型。...小结: Python内置的try...except...finally用来处理错误十分方便。出错,会分析错误信息并定位错误发生的代码位置才是最关键的。...并且,Python内置的“文档测试”(doctest)模块可以直接提取注释中的代码并执行测试doctest严格按照Python交互式命令行的输入和输出来判断测试结果是否正确。...注意到最后3行代码。当模块正常导入时,doctest不会被执行。只有在命令行直接运行时,才执行doctest。所以,不必担心doctest会在非测试环境下执行。...小结: doctest非常有用,不但可以用来测试,还可以直接作为示例代码。通过某些文档生成工具,就可以自动把包含doctest的注释提取出来。用户看文档的时候,同时也看到了doctest

1.1K30

doctest 用法简介

概述 doctestpython 系统库中用于交互式会话例子测试的工具,用于搜索以 >>> 开头的语句,并且将其作为Python命令,对结果进行测试。...这个工具可以方便地用于检测自己写的库是否有bug,例如某些函数功能可能发生改变,借此工具可以方便地对代码中的示例语句进行测试。...docstring 中的示例用法(即以>>> 开头的命令)是否跟代码实现相符合,可以使用下面的命令来操作: python3 -m doctest foo.py 没有报错的话默认是没有输出的,如果要看中间的执行信息...对于 .txt 文件的测试使用 doctest.testfile() 函数: import doctest doctest.testfile("example.txt") 一些使用注意点 >>> 缩进多个层次对结果没有影响...doctest 也可以对Error 进行测试,如果想要测试各种特殊case导致的错误的话,doctest是个不错的工具

18520

Python 6.3 文档测试

文档测试 如果你经常阅读Python的官方文档,可以看到很多文档都有示例代码。比如re模块就带了很多示例代码: >>>import re >>>m = re.search('(?...当我们如果编写注释,写上这样的注释: def abs(n):     ''' Function to get absolute value of number....并且,Python内置的‘文档测试(doctest)’模块会直接提取注释中的代码并执行测试doctest严格按照Python交互式命令行的输入和输出判断测试结果是否正确。...关注最后3行代码,当模块正常导入时,doctest不会被执行。只有在命令直接运行时,才执行doctest。所以,不必担心doctest会在非测试环境下被运行。...小结: doctest非常有用,不但可以用来测试,还可以直接作为示例代码。通过某些文档生成工具,就可以自动把包含doctest的注释提取出来。同时也看到了doctest

43730

Python学习笔记(八)——错误、调试、测试

,就可以用try来运行这段代码,如果执行出错,则后续代码不会继续执行,而是直接跳转至错误处理代码,即except语句块,执行完except后,如果有finally语句块,则执行finally语句块,至此...//docs.python.org/3/library/exceptions.html#exception-hierarchy 使用try…except捕获错误还有一个巨大的好处,就是可以跨越多层调用,...抛出错误 只有在必要的时候才定义我们自己的错误类型。如果可以选择Python已有的内置的错误类型(比如ValueError,TypeError),尽量使用Python内置的错误类型。...文档测试 让我们用doctest测试上次编写的Dict类: # mydict2.py class Dict(dict): ''' Simple dict but also support...doctest.testmod() 运行python3 mydict2.py什么输出也没有。

74820

Python语法】Python中为自定义类编写help文档以及进行文档测试

参考链接: Python help() 一 以注释方式为类添加帮助文档          我们知道,Python中可以使用help('模块名')或者help(类名)的形式来查看一个模块或者类的帮助文档,...我们也可以为自定义的类添加帮助文档,并用help进行查看.Python中用三对双引号可以进行多行注释,当我们把这种注释内容放到一个类或者函数定义的下面,它会自动被当作该类或者函数的帮助文档.请看下面的类...进行文档测试           我们在上面的模块中加入下面这段代码:  if __name__=='__main__':     import doctest     doctest.testmod(...导入doctest.testmod()会自动在终端测试我们所写的这些例子:  hyman@hyman-VirtualBox:~/projects/pythonTs$ python docts.py hyman...  >>> mt.add(3,-2)         0        再运行就报错了(注意写运行示例,>>>和python语句之间要有一个空格,否则会出现语法错误.) hyman@hyman-VirtualBox

1.3K30

python 测试框架doctest

doctestpython自带的一个模块。本博客将介绍doctest的两种使用方式:一种是嵌入到python源码中,另外一种是放到一个独立文件。...doctest 的概念模型 ---- 在python的官方文档中,对doctest是这样介绍的: doctest模块会搜索那些看起来像是python交互式会话中的代码片段,然后尝试执行并验证结果。...那个verbose参数,如果设置为True则在执行测试的时候会输出详细信息。默认是False,表示运行测试,只有失败的用例会输出详细信息,成功的测试用例不会输入任何信息。...如果main函数有其他用途,不方便调用doctest.testmod()方法,那么可以用另外一种执行测试的方法: $ python -m doctest unnecessary_math.py $ python...doctest独立文件 ---- 如果不想将doctest测试用例嵌入到python的源码中,则可以建立一个独立的文本文件来保存测试用例。

70420

Python 测试基础

这不仅对最初开发程序有帮助,对以后扩展和维护代码也有帮助。 做好应对变化的准备 ? 自动化测试不仅可在你编写程序时提供极大的帮助,还有助于你在修改代码避免累积错误,这在程序规模很大尤其重要。...注意 如果这里编写的是真实函数,我将(或者说应该)根据前面制定的规则先编写文档字符串,再使用 doctest 运行脚本看看是否会失败,然后添加刚好让测试得以通过的代码(如使用测试语句来处理文档字符串中的具体输入...如你所见,使用 square(2)的测试没有捕捉到 bug,因为 x == 2 ,x**2 与 x**x 等价! 有关模块 doctest 的详细信息,请参阅“Python 库参考手册”。...请随意尝试这些代码,看看能否让检查器报告错误,同时确保功能测试依然管用(可以不使用 PyChecker 或 PyLint——使用其中一个可能就足够了)。...模块 doctest 和 unittest:需要在 Python 中进行单元测试,这些工具必不可少。模块 doctest 设计用于检查文档字符串中的示例,但也可以轻松地使用它来设计测试套件。

1.5K10

项目创建(代码规范)

在我们导入模块,有可能在被导入模块的主程序中有其他的代码,但是在我们调用该模块就可以检查一下__name__变量,如果该变量的值为__main__。则说明该模块并不是以被调用的模块来执行。...这也避免了我们在调用该模块自动运行该模块的主程序的问题。 logging程序日志模块 python的logging模块提供方法可以让我们使用程序日志logging功能。...代码测试主要分为两方面的测试,一方面是代码风格的测试(换行注释以及报错等),另外一方面是对代码逻辑的测试(输出的值是否正确,边界是否考虑到位等) unittest Python标准库提供了unittest...doctest 标注库的第二个测试包是doctest,它可以让我们把测试写在文档字符串中,也可以起到文档的作用。...() if __name__ == '__main__': import doctest doctest.testmod() # 在命令行窗口输入:python test_cap.py

37020
领券