栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pytest框架入门

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pytest框架入门

pytest属于第三方库,使用前,请先安装:pip install pytest

对于单元测试框架的核心功能:
  • 收集用例,进入目录,运行 pytest 指令

cd 目录路径:进入目录

pytest:执行测试用例

  • 制定用例函数的定义规则,以test开头支持普通函数,测试类
"""pytest用例编写规则很灵活:
1、直接定义函数,不需要测试类
2、编写测试类,不继承unittest.TestCase
3、编写测试类,继承unittest.TestCase,可以直接迁移(兼容)

测试函数还是test_开头
"""
import unittest


def test_pytest_1():
    pass


class TestPytest2:
    def test_pytest_2(self):
        pass


class TestPytest3(unittest.TestCase):
    def test_pytest_3(self):
        pass
  • 自动执行用例,如果不能识别用例,需要修改pycharm默认的执行器改成pytest

  • 前置和后置夹具

1)如果继承了unittest.TestCase,所有东西都不需要修改,直接使用就可以

2)如果不继承unittest.TestCase,使用pytest自己的前置和后置

import pytest


# 声明这是一个夹具,这个夹具就是个函数
@pytest.fixture()
def fixt():
    # setUp
    print("每次测试都会执行的")
    # yield 分割线 前置和后置
    yield
    # tearDown
    print("每次测试用例后都会执行的")


class TestFixture:
    # 调用夹具
    def test_fixture(self, fixt):
        assert 1 + 1 == 2


class TestFixture1:
    # 调用夹具
    def test_fixture1(self, fixt):
        assert 1 + 1 == 2

运行结果:

  • 断言 
assert 表达式
def test_pytest_1():
    actual = 1
    expected = 2
    assert expected == actual

运行结果:

  • 生成测试报告

需要安装第三方库支持生成测试报告:pip install pytest-html

进入目录,运行 pytest --html=report.html 指令,生成report.html名称的报告,浏览器中查看:

注意:

pytest和unittest是可以兼容的,如果之前用的是unittest框架编写代码,pytest命令行运行就可以了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/580399.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号