码迷,mamicode.com
首页 > 其他好文 > 详细

pytest学习指南(三)-fixture基本使用

时间:2020-03-22 15:43:41      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:方法   res   学习   测试   div   调用   ash   执行   表示   

1.前言

        自动化测试本质属于软件测试活动中的一种方法,更多的是替代手工测试执行过程中重复的工作。所以自动测试和手工测试最大的区别在于执行测试用例的方式不一样。

        在执行测试用例前往往需要进行环境的准备。

   在unittest中一般通过 setUp与tearDown来进行用例前的环境准备和用例后的环境销毁。而在pytest中还有另外一种方式——fixture。与setup和teardown相比,fixture使用起来更加灵活,更加炫酷。

 

2.Fixture的使用

     1.基本使用--fixture与用例处在同一个文件中

import pytest
def test_2(aa):        #选择执行那个fixture
assert 2==2
print("我是测试用例")

@pytest.fixture()
def aa():
print("先执行我")
yield #类似分隔符号 yield 上面的代码表示用例执行前 下面的表示用例执行之后
print("执行完用例后再执行我")
@pytest.fixture()
def bb():
print("执行我把")
if __name__ == __main__:
pytest.main([
"-s"])
  •  pytest 首先会检测到 fixture 函数, 并在运行测试函数之前先执行fixture,这里注意的是可以在一个文件中设置多个fixture,用例可以自行选择执行那个fixture
  • pytest中的环境准备和环境销毁(也就是unittest中的setup和teardown)是写在同一个函数中,用yield进行分隔

 2.conftest.py实现多个文件中共享fixture

 conftest.py文件

cimport pytest


    @pytest.fixture      #声明它下面的函数是一个pytest的前置后置
    def aa():
        print("先执行我")
        yield
        print("执行完用例后再执行我")

    @pytest.fixture
    def bb():
        print("执行我把")

test_demo.py文件

@pytest.mark.usefixtures("aa")  #表示调用名为aa的前置后置
def test_2():
assert 2==2
print("我是测试用例")

 

注意:当@pytest.mark.usefixtures放到class上指该类下所有用例都执行

pytest学习指南(三)-fixture基本使用

标签:方法   res   学习   测试   div   调用   ash   执行   表示   

原文地址:https://www.cnblogs.com/hn-daxiong/p/12543691.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!