中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

Pytest如何快速入門-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!

創(chuàng)新互聯(lián)公司-成都網(wǎng)站建設(shè)公司,專注成都做網(wǎng)站、網(wǎng)站制作、網(wǎng)站營銷推廣,空間域名,網(wǎng)頁空間,網(wǎng)站托管、服務(wù)器托管有關(guān)企業(yè)網(wǎng)站制作方案、改版、費(fèi)用等問題,請聯(lián)系創(chuàng)新互聯(lián)公司

Pytest如何快速入門?針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

1、安裝

(1)全局安裝

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

pip install -U pytest

檢查安裝版本

$ pip install -U pytest

This is pytest version 4.4.0, imported from xxxx

(2)項(xiàng)目目錄下安裝

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

mkdir pytest_project

cd pytest_project

virtualenv .venv

這將會在項(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、基本操作

(1)主要內(nèi)容

基本使用方式:我們將從一個(gè)簡單的測試開始,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_作為測試函數(shù)名稱的前綴。

# test_capitalize.py

def capital_case(x):

    return x.capitalize()

def test_capital_case():

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

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

collected 1 item

                                                                                            test_capitalize.py .                                                  [100%]

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

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

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

(1)xunit 格式

函數(shù)級別設(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 類級別

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ù)級別

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 級別

yeild 關(guān)鍵字

class 類級別

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ù)化

(1)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 級別的參數(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}==')

關(guān)于Pytest如何快速入門問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道了解更多相關(guān)知識。

網(wǎng)頁題目:Pytest如何快速入門-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://www.rwnh.cn/article42/ehshc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站企業(yè)網(wǎng)站制作、品牌網(wǎng)站制作、用戶體驗(yàn)、定制網(wǎng)站、微信公眾號

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
洛浦县| 涿州市| 武乡县| 滁州市| 轮台县| 京山县| 卢龙县| 武汉市| 金阳县| 沛县| 汉川市| 和林格尔县| 揭西县| 北海市| 澎湖县| 太仆寺旗| 叶城县| 扎兰屯市| 靖西县| 泾源县| 永登县| 宁阳县| 方山县| 夏河县| 石景山区| 张掖市| 喀喇沁旗| 景德镇市| 卢氏县| 米易县| 民勤县| 西丰县| 余庆县| 通化县| 临汾市| 公安县| 花莲县| 商丘市| 永吉县| 星座| 保靖县|