想全部掌握unittest还远远不够
本片博文将介绍unittest框架的一些轻便有效的特性,在我们的测试中经常可以用到如果有一些测试方法不想执行,如果有些测试方法在某些条件下不执行 该当如何?如果有些方法未在unittest框架下编写,又想使用unittest框架执行,该当如何?如果想自定义一个执行顺序该当如何?
unittest单元测试框架的设计灵感来源于Junit(Java语言的单元测试框架),它与其他语言的单元测试框架风格相类似,支持自动化测试、为测试共享setUp和shutDown、它可以在将测试用例聚合到一起形成一个集合一起执行的同时在测试报告中展示独立的测试结果。
测试用例的是通过调用unittest.mian()函数,它会将模块的测试用例收集起来并执行,然而当我们的测试用例增多了以后,这样的执行非常不灵活而且没有效率,我们更愿意看到自由组合的一组用例,只执行这组用例的方式,unittest.TestSuite能够满足我们这个需求,笔者将一random类作为被测试类来详细展示unittest.TestSuite
单元测试里很重要的一个部分就是断言,unittest为我们提供了很多断言方法,断言方法分为三类,一种是用来断言被测试的方法的,另一种是测试是否抛正确异常的,第三种是用来断言日志是否包含应有信息的,方法很多
本章将详细介绍组织测试代码的相关内容,所用的测试例子会是冒泡排序,笔者在从业这么久之后回想很多面试都要问冒泡排序,虽然不知道为什么要问这个,但还是希望大家掌握,它与自动化测试关系不大属于python的基础范畴
基于Pytest的代码结构,可以很容易借助hook函数来实现定制和扩展插件,如果你想与世界分享自己的插件,开源自己的代码,本篇或许能帮到你
借助setuptools将python代码打包,可通过pip安装,实现代码共享,并借助twine发布安装包
pytest-repeat插件用于设定用例执行次数
在自动化测试中有些资源只能同时被一个测试用例访问,如果不需要同时使用同一个资源,那么测试用例便可以并行执行,pytest-xdist插件可以帮我实现
pytest-instafail插件能够让我们及时的看到执行失败或者执行错误的反馈信息,而不需要等到全部用例都执行完才展示
pytest-sugar插件可以使我们的执行结果展示更加丰富
静态分析工具可以在不运行代码的情况下进行检查,静态分析失败同样会被现实为测试失败pytest-pycodestyle和pytest-pep8PEP8是python代码风格指南,Python的标准库代码要求遵循它的规范,pycodestyle命令行工具可以用来检查Python代码是否尊存了PEP8,安装了pytest-pycodestyle后,在命令行使用–pep8,ptest将会调用pycod...
pytest-html插件能够以最简单的方式生成HTML的测试报告,能够展示必备的异常信息
参数化测试往往一个测试函数需要多组测试数据进行测试,pytest提供了传递多组数据执行用例的方式@pytest.mark.parametrize(argnames, argvalues)参数化用法一import pytest from collections import namedtupleTask = namedtuple('Task', ['summary','owner','...
PDB是Python标准库里的调试模块,在pytest里,可以使用--pdb选项在测试失败时开启调试的交互模式
就像Unittest框架一样,pytest也支持通用的fixture,叫做xUnit fixture,包含了模块、函数、类等各个级别的setup()/teardown()方法
可能您已经有大量的unittest框架下的用例没有迁移到pytest,如何执行unittest框架下的用例?
Mock可以用来替换系统中某个部分以隔离要测试的代码
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号