91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Pytest如何快速入門

發布時間:2020-07-27 14:23:29 來源:億速云 閱讀:161 作者:Leah 欄目:編程語言

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

 

1、安裝

 

1)全局安裝

 

使用pip 進行安裝

 

pip install -U pytest

 

檢查安裝版本

 

$ pip install -U pytest

This is pytest version 4.4.0, imported from xxxx

 

2)項目目錄下安裝

 

如果只是將pytest安裝到當前項目中,不與其它的版本混淆,使用 virtualenv進行安裝

 

mkdir pytest_project

cd pytest_project

virtualenv .venv

 

這將會在項目目錄下創建pytest-env目錄存放虛擬環境。

激活虛擬環境

 

source .venv/bin/activate

 

再次使用pip進行安裝,安裝文件將存放在當前項目目錄下,而不再是全局環境變量下

$ pip install pytest

 

3)區別

 

全局安裝方式適合所有項目,在項目目錄下虛擬化安裝只適合當前項目。

 

2、基本操作

 

1)主要內容

 

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

 

# test_capitalize.py

 

def capital_case(x):

    return x.capitalize()

 

def test_capital_case():

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

 

在命令行運行 pytest ,   將自動執行 test_capitalize.py 文件中的 test_capital_case 測試方法;

 

collected 1 item

                                                                                            test_capitalize.py .                                                  [100%]

 

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

 

測試用例執行通過。

 

3Pytest 運行時設置

 

1xunit 格式

 

函數級別設置運行時

 

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------')

 

運行文件 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 -

 

2fixture

 

函數級別

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 關鍵字

 

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: 整個文件

● 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 多個文件共享

 

4、參數化

 

1mark.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,'-----')

 

2fixture 級別的參數化


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}==')

關于Pytest如何快速入門問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

恩施市| 平乐县| 桂东县| 闻喜县| 县级市| 青冈县| 海宁市| 浙江省| 娱乐| 大姚县| 临湘市| 蕉岭县| 海盐县| 德令哈市| 和平县| 峨眉山市| 满洲里市| 永德县| 上栗县| 迭部县| 金阳县| 嫩江县| 海南省| 灵丘县| 年辖:市辖区| 肃南| 克东县| 会昌县| 洛宁县| 谷城县| 岱山县| 江源县| 合水县| 马公市| 泸定县| 修水县| 井陉县| 榆中县| 招远市| 清苑县| 江门市|