iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python 6.3 文档测试
  • 172
分享到

Python 6.3 文档测试

文档测试Python 2023-01-31 01:01:45 172人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

文档测试如果你经常阅读python的官方文档,可以看到很多文档都有示例代码。比如re模块就带了很多示例代码:>>>import re>>>m = re.search('(?<=abc)def','a

文档测试

如果你经常阅读python的官方文档,可以看到很多文档都有示例代码。比如re模块就带了很多示例代码:
>>>import re

>>>m = re.search('(?<=abc)def','abcdef')

>>>m.group(0)

'def'

这些文档和其他说明可以写在注释中,然后,由一些工具来自动生成文档。既然这些代码本身可以粘贴出来直接运行,那么可不可以自动执行这些写在注释中的代码呢?

答案是肯定的。

当我们如果编写注释时,写上这样的注释:
def abs(n):

    '''

Function to get absolute value of number.

Example:
>>>abs(1)

1

>>>abs(-1)

1

>>>abs(0)

0

'''

return n if n >=0 else(-n)

无疑更明确的告诉函数调用者该函数期望的输入和输出。

并且,Python内置的‘文档测试(doctest)’模块会直接提取注释中的代码并执行测试。

doctest严格按照Python交互式命令行的输入和输出判断测试结果是否正确。只有测试异常的时候,可以用...一大段烦人的输出。

让我们用doctest来测试我们上次编写的Dict类:

# mydict2.py
class Dict(dict):
    '''
    Simple dict but also support access as x.y style.

    >>> d1 = Dict()
    >>> d1['x'] = 100
    >>> d1.x
    100
    >>> d1.y = 200
    >>> d1['y']
    200
    >>> d2 = Dict(a=1, b=2, c='3')
    >>> d2.c
    '3'
    >>> d2['empty']
    Traceback (most recent call last):
        ...
    KeyError: 'empty'
    >>> d2.empty
    Traceback (most recent call last):
        ...
    AttributeError: 'Dict' object has no attribute 'empty'
    '''
    def __init__(self, **kw):
        super(Dict, self).__init__(**kw)    def __getattr__(self, key):
        try:            return self[key]        except KeyError:            raise AttributeError(r"'Dict' object has no attribute '%s'" % key)    def __setattr__(self, key, value):
        self[key] = valueif __name__=='__main__':    import doctest
    doctest.testmod()

运行Python mydict2.py

什么输出也没有,说明我们编写的docttest都是正确的。如果程序有问题,比如,将__getattr__()方法注释掉,在运行就会报错:

python3 mydict2.py
**********************************************************************
File "/Users/michael/GitHub/learn-python3/samples/debug/mydict2.py", line 10, in __main__.Dict
Failed example:
    d1.x
Exception raised:
    Traceback (most recent call last):
      ...
    AttributeError: 'Dict' object has no attribute 'x'
**********************************************************************
File "/Users/michael/github/learn-python3/samples/debug/mydict2.py", line 16, in __main__.Dict
Failed example:
    d2.c
Exception raised:
    Traceback (most recent call last):
      ...
    AttributeError: 'Dict' object has no attribute 'c'
**********************************************************************
1 items had failures:   
    2 of   9 in __main__.Dict
***Test Failed*** 2 failures.

关注最后3行代码,当模块正常导入时,doctest不会被执行。只有在命令直接运行时,才执行doctest。所以,不必担心doctest会在非测试环境下被运行。


小结:

doctest非常有用,不但可以用来测试,还可以直接作为示例代码。通过某些文档生成工具,就可以自动把包含doctest的注释提取出来。同时也看到了doctest。

--结束END--

本文标题: Python 6.3 文档测试

本文链接: https://www.lsjlt.com/news/184463.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python 6.3 文档测试
    文档测试如果你经常阅读Python的官方文档,可以看到很多文档都有示例代码。比如re模块就带了很多示例代码:>>>import re>>>m = re.search('(<=abc)def','ab...
    99+
    2023-01-31
    文档 测试 Python
  • Python 单元测试 & 文档测试
    1.1   单元测试1.1.1   单元测试编写单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。编写一个Dict类,这个类的行为和dict一致,但是通过属性来访问。>>> d = Dict(a=1,...
    99+
    2023-01-31
    单元测试 文档 测试
  • python 文档测试:doctest
    doctest作用:会把文档中注释的代码提取并进行测试。#!/usr/bin/python # -*- coding: utf-8 -*- class Dict(dict):     '''         Simple dict but...
    99+
    2023-01-31
    文档 测试 python
  • python怎么编写接口测试文档
    本篇内容主要讲解“python怎么编写接口测试文档”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python怎么编写接口测试文档”吧!目录前言一、postman接口用例转换为python测试用例...
    99+
    2023-06-20
  • python编写接口测试文档(以豆瓣搜索为例)
    目录前言一、postman接口用例转换为python测试用例二、转换为pytest测试用例三、封装POST和GET方法1.common.py—公共类封装2.具体接口测试用例总结前言 ...
    99+
    2024-04-02
  • 如何为 Golang 函数文档编写测试?
    编写 go 函数文档测试的语法:测试名称包含 example 前缀。测试代码说明函数预期行为。断言验证函数返回值与预期相同。测试覆盖函数的不同使用情况。编写测试有助于改进函数文档,通过示...
    99+
    2024-05-06
    测试 文档 golang
  • Python 开发工具集:关于文档、测
    Python已经演化出了一个广泛的生态系统,该生态系统能够让Python程序员的生活变得更加简单,减少他们重复造轮的工作。同样的理念也适用于工具开发者的工作,即便他们开发出的工具并没有出现在最终的程序中。本文将介绍Python程序员必知必...
    99+
    2023-01-31
    开发工具 文档 Python
  • python文档
    #形式 # 角色 #抓取对象内可用的所有属性列表的简单方式 import random print(dir(random)) #['BPF', 'LOG4',...
    99+
    2023-01-31
    文档 python
  • Python测试 | 在python中创建单元测试
    作为开发人员或程序员, 只要编写代码,通常就会忽略一件事:测试。测试是开发的一部分,您应该严格测试应用程序,以确保它们满足必需的功能。让我们先从为什么要做测试开始:1、减少手动测试的需求因为测试用例是预先编写的,所以没有真正的理由再进行手动...
    99+
    2023-05-14
    Python 测试 单元
  • Python Flask 上传文件测试示例
    目录 Flask file upload代码上传测试上传临时文件使用 tempfile使用 StringIO其他 Flask file upload代码 impo...
    99+
    2024-04-02
  • python ftp测试
    刚学Python,做的ftp测试 1,简单ftp vim test.py #!/usr/bin/env python import time from ftplib import FTP local_dir_u...
    99+
    2023-01-31
    测试 python ftp
  • Flask实现swagger在线文档与接口测试流程详解
    目录1.什么是restful2.swagger/openAPI能做什么3.python如何实现swagger4.flasgger的使用案例5.完整代码阅读对象:知道什么是restfu...
    99+
    2024-04-02
  • 测试python HTTPServer功
    #基本HTTP python -m BaseHTTPServer 8080如果当前目录有index.html 则可以直接显示#简单HTTP 包含GET与HEAD请求 python -m SimpleHTTPServer 8080#HTTP ...
    99+
    2023-01-31
    测试 python HTTPServer
  • python 并发测试
    最近在写一个简单的配置服务,用私有协议,用python写。用途是给某些局域网的机器提供配置服务。 挺有趣的 :) 顺手写了一下并发的自测的代码: def go(server_ip): print 'test' def pre...
    99+
    2023-01-31
    测试 python
  • python 测试工具
              对Web服务做Performance & Load测试,最常见的工具有Apache Benchmark俗称ab和商用工具LoadRunner。ab简单直接,功能也相对较弱,但我们经常看到的对一些Web serve...
    99+
    2023-01-31
    测试工具 python
  • Python测试入门
    1.测试的分类判断软件能做什么:针对数据进行”功能、接口、容错、界面、权限、初始化、数据完整性测试”;检测软件做的怎么样:包括性能、负载、恢复、稳定性、并发、系统安全等方面;软件在什么环境条件下做:包括配置、安装、文档、可用性等;2.接口的...
    99+
    2023-06-02
  • 怎么创建SAP CRM服务请求文档的subject测试数据
    本篇内容主要讲解“怎么创建SAP CRM服务请求文档的subject测试数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么创建SAP CRM服务请求文档的subject测试数据”吧!Cars...
    99+
    2023-06-04
  • 一文详解测试Python读写xml配置文件
    前言: xml也是常用的配置文件格式之一,Python中的xml.etree.ElementTree模块支持解析和创建xml数据。xml格式不再赘述,本文采用参考文献1中的示例xml...
    99+
    2024-04-02
  • python中的单元测试和数据库测试
    登录测试被测试的代码逻辑 @app.route('/login', methods=['POST']) def login(): username = request.form.get('username') passwor...
    99+
    2023-01-31
    单元测试 数据库 测试
  • python+pytest自动化测试函数测试类测试方法的封装
    目录前言一、测试用例封装的一般规则三、测试类/方法的封装四、示例代码总结前言 今天呢,笔者想和大家聊聊python+pytest接口自动化中将代码进行封装,只有将测试代码进行封装,才...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作