Python 测试相关

软件开发固然重要,软件测试也必不可少。

一. Python 文档测试

GitHub代码commits id:c5bdcc5

1. pydoc生成文档

python 的 pydoc 模块可以非常方便地查看、生成 HTML 帮助文档。只要在函数、类、方法定义后面加

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
@File    :   01_create_pydoc.py
@Time    :   2019/8/16 11:36
@Author  :   Crisimple
@Github :    https://crisimple.github.io/
@Contact :   Crisimple@foxmail.com
@License :   (C)Copyright 2017-2019, Micro-Circle
@Desc    :   None
"""
 NMAE = 'PyDOC'

class CreatePyDOC(object):
    name = 'pydoc'
    """
    定义一个CreatePyDOC,该类包括两个变量:name、language
    """
    def __int__(self, name, language):
        """
        name --- 初始化文档的名称
        language --- 初始化文档的编写语言
        :param name:
        :param language:
        :return:
        """
        self.name = name
        self.age = language

    def print_info(self, language):
        """
        定义一个print_info方法
        language代表使用的语言
        :param language:
        :return:
        """
        print("%s doc 是用 %s 编写的" % (self.name, language))


def create_doc(name, language, money):
    """
    定义一个打印创建doc信息的函数
    name --- 档的称
    language --- 文档语言
    money --- 售价
    :param name:
    :param language:
    :param money:
    :return:
    """
    print("doc的名字是 %s, 它的语言是 %s, 售价 %d"% (name, language, money))

1.1 pydoc 在控制台中查看文档

(1) 模块的文档说明:就是*.py 文件顶部的注释信息,这部分信息会被提取成模块的文档说明。
(2) CLASSES 部分:这部分会列出该模块所包含的全部类。
(3) FUNCTIONS 部分:这部分会列出该模块所包含的全部函数。
(4) DATA 部分:这部分会列出该模块所包含的全部成员变量。
(5) FILE 部分:这部分会显示该模块对应的源文件。
# m 是 python 命令的一个选项,表示运行指定模块
python -m pydoc 01_create_pydoc


# *********执行结果*************
$ python -m pydoc 01_create_pydoc
Help on module 01_create_pydoc:

NAME
    01_create_pydoc

DESCRIPTION
    @File    :   01_create_pydoc.py
    @Time    :   2019/8/16 11:36
    @Author  :   Crisimple
    @Github :    https://crisimple.github.io/
    @Contact :   Crisimple@foxmail.com
    @License :   (C)Copyright 2017-2019, Micro-Circle
    @Desc    :   None

CLASSES
    builtins.object
        CreatePyDOC

    class CreatePyDOC(builtins.object)
     |  Methods defined here:
     |
     |  __int__(self, name, language)
     |      name --- 初始化文档的名称
     |      language --- 初始化文档的编写语言
     |      :param name:
     |      :param language:
     |      :return:
     |
     |  print_info(self, language)
     |      定义一个print_info方法
     |      language代表使用的语言
     |      :param language:
     |      :return:
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables (if defined)
     |
     |  __weakref__
     |      list of weak references to the object (if defined)
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  name = 'pydoc'

FUNCTIONS
    create_doc(name, language, money)
        定义一个打印创建doc信息的函数
        name --- 档的称
        language --- 文档语言
        money --- 售价
        :param name:
        :param language:
        :param money:
        :return:

DATA
    NAME = 'PyDOC'

FILE
    d:\myspace\python\unittest\doc\01_create_pydoc.py

1.2 pydoc 生成 HTML 文档

# -w 选项,该选项代表 write,表明输出 HTML 文档
python -m pydoc -w 01_create_pydoc

pydoc 生成 HTML 文档

1.3 启动本地服务查看文档

第一部分显示 Python 内置的核心模块。
第二部分显示 当前目录下的所有模块。
第三部分显示 目录下的所有模块,此时在该目录下并未包含任何模块。第三部分用于显示 PYTHONPATH 环境变量所指定路径下的模块
python -m pydoc -p 1234

# 输出信息
python -m pydoc -p 1234
Server ready at http://localhost:1234/
Server commands: [b]rowser, [q]uit
server> b    --- 启动浏览器,当然也可以自己在浏览器输入地址
server> q    --- 退出本地服务
Server stopped

1.4 pydoc 查找模块

-k 后跟被搜索模块的部分内容,即可以进行模糊搜索

python -m pydoc -k create

2. doctest 文档测试

  文档测试,即通过 doctest 模块运行 Python 源文件的说明文档中的测试用例,从而生成测试报告。

  文档测试工具可以提取文档说明中的测试用例,">>>" 后面就表示的是测试用例,紧接着的一行则代表测试用例的输出结果(即预期结果)。文档测试工具会判断测试用例与预期结果是否一致,不一致会输出错误信息。
GitHub代码commits id:cda157d

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
@File    :   02_doctest.py
@Time    :   2019/8/17 15:48
@Author  :   Crisimple
@Github :    https://crisimple.github.io/
@Contact :   Crisimple@foxmail.com
@License :   (C)Copyright 2017-2019, Micro-Circle
@Desc    :   None
"""

import doctest


class User:
    """
    定义一个代表用户的类,该类包含两个属性:
    name - 用户的名字
    age - 用户的年龄

    >>> u = User('abc', 9)
    >>> u.name
    'ABC'
    >>> u.age
    9
    >>> u.say()
    'abc 说,我今年 10 岁了。'
    """
    def __init__
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值