前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pytest系列(一)初次了解

Pytest系列(一)初次了解

作者头像
雷子
发布2022-04-06 08:28:41
4560
发布2022-04-06 08:28:41
举报
文章被收录于专栏:雷子说测试开发

在之前,我分享过unittest系列,unittest系统(八)一文搞定unittest重试功能,后来有很多人问我,能不能出pytest的教程,正好最近在整理pytest相关的资料,那么,就趁着这个机会,去和大家分享一下pytest系列。

pytest是一个非常成熟的全功能的Python测试框架。那么他有什么优点呢。

代码语言:javascript
复制
pytest优点
入门简单,文档丰富
支持单元测试,功能测试
支持参数化,重复执行,部分执行,测试跳过
兼容其他测试框架(nose,unittest 等)
支持生成html报告
可集成CI环境(Jenkins 等)
第三方插件丰富,良好的自定义扩展性

那么我们对比下它与unittest。

代码语言:javascript
复制
(1)unittest
测试文件必须先 import unittest
测试类必须继承unittest.TestCase
测试方法必须以“test_”开头
测试类必须要有unittest.main()方法
unittest只有setup/teardown装载测试用例
(2)pytest
测试文件名必须以“test_”开头
测试类以Test开头,并且不能带有 init 方法
测试方法必须以“test_”开头
除了有setup/teardown,还能更自由的定义fixture装载测试用例

那么我们看下它支持的python

代码语言:javascript
复制
Python支持版本: Python 2.6,2.7,3.3+
支持的平台: Unix/mac and Windows
PyPI包名: pytest

如何安装,很简单

代码语言:javascript
复制
pip install -U pytest

安装完毕后

我们可以在安装的时候,看到它的版本,也可以使用

代码语言:javascript
复制
pytest --version

查看版本

如何快速写一个pytest用例呢,很简单

代码语言:javascript
复制
def add(a:int,b:int):
    return a+b
def test_answer():
    assert add(3,4) == 7

执行下

代码语言:javascript
复制
pytest py_test_one.py

结果如下

用例执行通过,如果用例失败呢?

代码语言:javascript
复制
def add(a:int,b:int):
    return a+b
def test_answer():
    assert add(3,4) == 8

测试失败输出

一个简单的小的入门的demo就完成了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档