Free性欧美Hd另类_精品亚洲欧美视频在线观看_freesex欧美喷水_字幕av在线_久久久久久国产免费_伊人5566

中培偉業(yè)IT資訊頻道
您現(xiàn)在的位置:首頁(yè) > IT資訊 > 軟件研發(fā) > 詳解Python中的Pytest使用說明

詳解Python中的Pytest使用說明

2020-07-15 14:28:48 | 來源:中培企業(yè)IT培訓(xùn)網(wǎng)

對(duì)于編程人員來說,Python是編程語(yǔ)言是編程行業(yè)的入門基礎(chǔ)。而在Python測(cè)試框架中Pytest不僅簡(jiǎn)單靈活,而且還是新手的快速入門。Pytest還具有許多第三方插件,功能非常強(qiáng)大。因此,有的人說Pytest是測(cè)試行業(yè)從業(yè)人員的必備工具。本文將詳解Python中的Pytest使用說明,包括Pytest安裝,基本操作,運(yùn)行時(shí)設(shè)置和參數(shù)化。

  1、安裝

 ?。?)全局安裝

使用pip 進(jìn)行安裝

pip install -U pytest

檢查安裝版本

$ pip install -U pytest

This is pytest version 4.4.0, imported from xxxx

 ?。?)項(xiàng)目目錄下安裝

如果只是將pytest安裝到當(dāng)前項(xiàng)目中,不與其它的版本混淆,使用 virtualenv進(jìn)行安裝

mkdir pytest_project

cd pytest_project

virtualenv .venv

這將會(huì)在項(xiàng)目目錄下創(chuàng)建pytest-env目錄存放虛擬環(huán)境。

激活虛擬環(huán)境

source .venv/bin/activate

再次使用pip進(jìn)行安裝,安裝文件將存放在當(dāng)前項(xiàng)目目錄下,而不再是全局環(huán)境變量下

$ pip install pytest

(3)區(qū)別

全局安裝方式適合所有項(xiàng)目,在項(xiàng)目目錄下虛擬化安裝只適合當(dāng)前項(xiàng)目。

  2、基本操作

基本使用方式:我們將從一個(gè)簡(jiǎn)單的測(cè)試開始,Pytest命名規(guī)范文件名以test_開頭或以_test.py結(jié)尾。首先創(chuàng)建一個(gè)名為test_capitalize.py的文件,在此文件中編寫一個(gè)名為capital_case的函數(shù),以字符串作為參數(shù),將參數(shù)轉(zhuǎn)化為大寫返回。另外編寫一個(gè)test_capital_case參數(shù)函數(shù),主要驗(yàn)證capital_case函數(shù)完成它所說的內(nèi)容,我們用test_作為測(cè)試函數(shù)名稱的前綴。

# test_capitalize.py

def capital_case(x):

return x.capitalize()

def test_capital_case():

assert capital_case('semaphore') == 'Semaphore'

在命令行運(yùn)行 pytest , 將自動(dòng)執(zhí)行 test_capitalize.py 文件中的 test_capital_case 測(cè)試方法;

collected 1 item

test_capitalize.py . [100%]

========================================= 1 passed in 0.01 seconds ==========================================

測(cè)試用例執(zhí)行通過。

  3、Pytest 運(yùn)行時(shí)設(shè)置

 ?。?)xunit 格式

函數(shù)級(jí)別設(shè)置運(yùn)行時(shí)

setup_module

setup

teardown

teardown_module

如下代碼

def setup_module():

print("module --setup-- ")

def teardown_module():

print('module --teardown--')

def setup():

print("function --setup--")

def teardown():

print("function --teardown--")

def test_01():

print("---test01---")def test_02(): print('-----test02------')

運(yùn)行文件 pytest -s -v tmp.py

testcases/tmp.py::test_01

module --setup--

function --setup

-----test01---

PASSED function --teardown--

testcases/tmp.py::test_02

function --setup--

-----test02------

PASSED

function --teardown--

module --teardown--

Class 類級(jí)別

tmp2.py

class TestTmp2:

@classmethod

def setup_class(cls):

print('- class setup -')

@classmethod

def teardown_class(cls):

print('- class teardown - ')

def setup(self):

print('- method setup -')

def teardown(self):

print("- method teardown -")

def test_01(self):

print("-- test01 --")

def test_02(self):

print('-- test02 --')

pytest -s -v tmp2.py

tmp2.py::TestTmp2::test_01 - class setup

-- method setup -

-- test01 --

PASSED- method teardown -

testcases/tmp/tmp2.py::TestTmp2::test_02 - method setup -

-- test02 --

PASSED- method teardown -

- class teardown -

  (2)fixture

  函數(shù)級(jí)別

tmp.py

import pytest

@pytest.fixture(scope='module')

def fix_module():

print('-- module setup --')

yield

print('-- module teardown --')

@pytest.fixture()def fix_func(fix_module):

print('-- func setup --')

yield

print('-- func teardown --')

@pytest.fixture()def fix_func2():

print('-- func2 setup --')

yield

print('-- func2 teardown --')

def test_01(fix_func):

print('-- test 01 --')

def test_02(fix_func2):

print('-- test 02 --')

scope="module", module 級(jí)別

yeild 關(guān)鍵字

class 類級(jí)別

import pytest

@pytest.fixture(scope='module')

def fix_module():

print('-- module setup --')

yield

print('-- module teardown --')

class TestTmp2:

@pytest.fixture()

def fix_func(self, fix_module):

print('-- func setup --')

yield

print('-- func teardown --')

def test_01(self,fix_func):

print('-- test 01 --')

def test_02(self,fix_func):

print('-- test 02 --')

pytes -s -v tmp2.py

tmp2.py::TestTmp2::test_01 -- module setup --

-- func setup --

-- test 01 --

PASSED-- func teardown --

tmp2.py::TestTmp2::test_02 -- func setup --

-- test 02 --

PASSED-- func teardown --

-- module teardown --

tmp2.py

import pytest

@pytest.fixture(scope='module')

def fix_module():

print('-- module setup --')

yield

print('-- module teardown --')

@pytest.fixture(scope='session')

def fix_session():

print('-- session set up --')

yield

print('-- session teardown --')

@pytest.fixture(scope='class')

def fix_class():

print('-- class set up --')

yield

print('-- class tear down --')

@pytest.fixture(scope='function')

def fix_function():

print('-- function set up --')

yield

print('-- function tear down --')

@pytest.mark.usefixtures('fix_session','fix_module','fix_class' ,'fix_function')

class TestTmp2:

def test_01(self):

print('-- test 01 --')

def test_02(self):

print('-- test 02 --')

● session: 所有

● module: 整個(gè)文件

● class:類

● function:方法

testcases/testfixture/tmp2.py::TestTmp2::test_01

-- session set up --

-- module setup --

-- class set up --

-- function set up --

-- test 01 --

PASSED-- function tear down --

testcases/testfixture/tmp2.py::TestTmp2::test_02

-- function set up --

-- test 02 --

PASSED-- function tear down --

-- class tear down --

-- module teardown --

-- session teardown --

conftest.py 多個(gè)文件共享

  4、參數(shù)化

 ?。?)mark.parametrize

import pytest

a = [

('share','title1','conent1'),

('share','title2','conent2'),

]

@pytest.mark.parametrize('tab,title,content',a)

def test_a(tab,title,content):

print('----',tab,title,content,'-----')

  (2)fixture 級(jí)別的參數(shù)化

import pytest

@pytest.fixture(params=[0,1],ids=['spam','ham'])

def a(request):

return request.param

def test_a(a):

print(f'--{a}--')

# assert a

def test_b(a):

print(f'=={a}==')

以上就是Python中的Pytest使用說明的全部?jī)?nèi)容,如果想了解更多關(guān)于Python的信息,請(qǐng)繼續(xù)關(guān)注中培偉業(yè)。

標(biāo)簽: Python Pytest
主站蜘蛛池模板: 国产成人无码A区在线观看视频不卡 | 国产末成年女av片 | 97在线视频免费 | 亚洲AV日韩AV高潮喷无码 | 国产亚洲日韩A欧美在线人成 | 88国产精品视频一区二区三区 | 欧美一区二区三区蜜桃 | 久久久国产精品萌白酱免费 | 日韩一区二区免费在线观看 | 亚洲精品国产一区二区三区四区在线 | 素人视频免费观看 | 亚洲美女一级毛片 | 欧美一级精品 | 欧美被狂躁喷白浆精品 | 特级做爰图片 | 国产成人亚洲综合a∨婷婷图片 | 精品久久久久久无码免费 | 久久欧美人人做人人爱 | 依人久久久 | 亚洲中文字幕无码乱线 | 久久无码人妻国产一区二区 | 亚洲欧美日本久久综合网站 | 国产欧美日韩在线一区 | chinese性内射高清5 | 乱肉合集乱高h交换 | 亚洲91网 | 亚洲国产wwwccc36天堂 | 国外av在线 | 四虎永久在线精品免费AV | 妖精视频www网站入口 | 精品伦一区二区三区免费视频 | 亚洲成A人片在线观看国产 亚洲国产一区自拍 | 亚洲欧洲国产码专区在线观看 | 精品久久久久久中文字幕 | 亚洲一区成人在线 | 亚洲乱码日产精品bd | 久久久999成人 | www.aa456.com亚洲 大胸美女被吃奶爽死视频 乱VODAFONEWIFI熟妇 | 国产亲子私乱av | 青青青在线视频观看 | 中国黄色毛片大片 |