亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python中pytest收集用例規(guī)則與運行指定用例詳解

 更新時間:2019年06月27日 10:32:28   作者:linux超  
這篇文章主要介紹了python中pytest收集用例規(guī)則與運行指定用例詳解,天會講解一下pytest是如何收集我們寫好的用例?我們又有哪些方式來運行單個用例或者批量運行用例呢,需要的朋友可以參考下

前言

上篇文章相信大家已經(jīng)了解了pytest在cmd下結合各種命令行參數(shù)如何運行測試用例,并輸出我們想要看到的信息。那么今天會講解一下pytest是如何收集我們寫好的用例?我們又有哪些方式來運行單個用例或者批量運行用例呢?下面將為大家一一解答!

pytest收集用例原理分析

首先我們按照如下目錄結構新建我們的項目

[pyttest搜索測試用例的規(guī)則]
|[測試用例目錄1]
| |__init__.py
| |test_測試模塊1.py
| |test_測試模塊2.py
|[測試用例目錄2]
| |__init__.py
| |test_測試用例1.py
| |測試用例.py
|test_測試模塊.py
|測試用例2.py 

代碼實例

# test_測試模塊1.py
def test_testFunc1():
print('\n我是一個測試用例! in test_testFunc1')
assert 1 == 1
def func1():
print('我不是一個測試用例')
assert 1 == 1
# test_測試模塊2.py
class TestClass1(object):
def test_class_func1(self):
print('\n 我是一個類里面的測試用例 in test_class_func1')
assert 1 == 1
def class_func1(self):
print('我是類里面的一個普通函數(shù)!')
# test_測試用例1.py
class TestClass2(object):
def test_class_func2(self):
print('\n 我是一個類里面的測試用例 in test_class_func2',)
assert 1 == 1
def class_func2(self):
print('我是類里面的一個普通函數(shù)!')
def test_testFunc2():
print('\n我是一個測試用例 in test_testFunc2!')
assert 1 == 1
def func2():
print('我不是一個測試用例')
assert 1 == 1
# 測試用例.py
def test_testFunc3():
print('\n我是一個測試用例! in 測試用例.py')
assert 1 == 1
def func3():
print('我不是一個測試用例')
assert 1 == 1
# test_測試模塊3.py
def test_testFunc4():
print('\n我是一個測試用例! in test_testFunc4')
assert 1 == 1
def func4():
print('我不是一個測試用例')
assert 1 == 1
class TestClass3(object):
def test_class_func3(self):
print('\n 我是一個類里面的測試用例 in test_class_func3')
assert 1 == 1
def class_func3(self):
print('我是類里面的一個普通函數(shù)!')
# 測試用例2.py
def test_testFunc5():
print('\n我是一個測試用例! in test_testFunc5')
assert 1 == 1
def func5():
print('我不是一個測試用例')
assert 1 == 1

下面我們使用cmd命令來執(zhí)行一下這個項目,看一下究竟會有多少條用例是有效的用例?打開cmd 切換到項目的根目錄執(zhí)行命令 pytest -v

D:\pytest搜索測試用例規(guī)則>pytest -v
============================= test session starts =============================
platform win32 -- Python 3.6.4, pytest-3.8.0, py-1.6.0, pluggy-0.7.1 -- c:\python36\python.exe
cachedir: .pytest_cache
metadata: {'Python': '3.6.4', 'Platform': 'Windows-10-10.0.17134-SP0', 'Packages': {'pytest': '3.8.0', 'py': '1.6.0', 'pluggy': '0.7.1'}, 'Plugins': {'metadata': '1.8.0', 'html': '1.20.0', 'allure-adaptor': '1.7.10'}, 'JAVA_HOME': 'C:\\Program Files\\Java\\jdk1.8.0_181'}
rootdir: D:\pytest搜索測試用例規(guī)則, inifile:
plugins: metadata-1.8.0, html-1.20.0, allure-adaptor-1.7.10
collected 6 items

test_測試模塊3.py::test_testFunc4 PASSED [ 16%]
test_測試模塊3.py::TestClass3::test_class_func3 PASSED [ 33%]
測試用例目錄1/test_測試模塊1.py::test_testFunc1 PASSED [ 50%]
測試用例目錄1/test_測試模塊2.py::TestClass1::test_class_func1 PASSED [ 66%]
測試用例目錄2/test_測試用例1.py::TestClass2::test_class_func2 PASSED [ 83%]
測試用例目錄2/test_測試用例1.py::test_testFunc2 PASSED [100%]
========================== 6 passed in 0.59 seconds ===========================

運行結果可以看到一共有6條用例passed,且詳細的列出了是哪6條,那么按照我們上面編寫的用例其實并不止6條,那么為什么會只運行了6條呢?綜合以上的代碼結構和我們的執(zhí)行結果對比,我們應該能發(fā)現(xiàn)這樣的規(guī)律

pytets會從我們當前運行的目錄開始查找所有目錄,查找以test_開頭的文件且文件中所有以test_開頭的函數(shù)和以Test開頭的類和類里面以test_開頭的函數(shù)為測試用例。這就是為什么上面之運行了6條測試用例!

pytest運行指定測試用例

我們?nèi)匀皇褂蒙厦娴捻椖孔鳛檠菔?cdm切換到項目的根目錄)

1.運行指定目錄下的所有用例
我們指定運行測試用例目錄1里面的所有用例(pytest -v 測試用例目錄1)

D:\pytest搜索測試用例規(guī)則>pytest -v 測試用例目錄1
============================= test session starts =============================
platform win32 -- Python 3.6.4, pytest-3.8.0, py-1.6.0, pluggy-0.7.1 -- c:\python36\python.exe
cachedir: .pytest_cache
metadata: {'Python': '3.6.4', 'Platform': 'Windows-10-10.0.17134-SP0', 'Packages': {'pytest': '3.8.0', 'py': '1.6.0', 'pluggy': '0.7.1'}, 'Plugins': {'metadata': '1.8.0', 'html': '1.20.0', 'allure-adaptor': '1.7.10'}, 'JAVA_HOME': 'C:\\Program Files\\Java\\jdk1.8.0_181'}
rootdir: D:\pytest搜索測試用例規(guī)則, inifile:
plugins: metadata-1.8.0, html-1.20.0, allure-adaptor-1.7.10
collected 2 items
測試用例目錄1/test_測試模塊1.py::test_testFunc1 PASSED [ 50%]
測試用例目錄1/test_測試模塊2.py::TestClass1::test_class_func1 PASSED [100%]

========================== 2 passed in 0.05 seconds ===========================
# 這樣就會只搜索和指定指定目錄下面所有的用

2.運行指定文件中的所有用例

我們指定運行test_測試模塊1.py(pytest -v 測試用例目錄1/test_測試模塊1.py )

D:\pytest搜索測試用例規(guī)則>pytest -v 測試用例目錄1/test_測試模塊1.py
============================= test session starts =============================
platform win32 -- Python 3.6.4, pytest-3.8.0, py-1.6.0, pluggy-0.7.1 -- c:\python36\python.exe
cachedir: .pytest_cache
metadata: {'Python': '3.6.4', 'Platform': 'Windows-10-10.0.17134-SP0', 'Packages': {'pytest': '3.8.0', 'py': '1.6.0', 'pluggy': '0.7.1'}, 'Plugins': {'metadata': '1.8.0', 'html': '1.20.0', 'allure-adaptor': '1.7.10'}, 'JAVA_HOME': 'C:\\Program Files\\Java\\jdk1.8.0_181'}
rootdir: D:\pytest搜索測試用例規(guī)則, inifile:
plugins: metadata-1.8.0, html-1.20.0, allure-adaptor-1.7.10
collected 1 item
測試用例目錄1/test_測試模塊1.py::test_testFunc1 PASSED [100%]

========================== 1 passed in 0.09 seconds ===========================
# 運行指定文件下的所有用例

3.運行指定文件中的測試類

我們指定運行test_測試模塊2.py中的測試類Testclass1(pytest -v 測試用例目錄1/test_測試模塊2.py::TestClass1)

D:\pytest搜索測試用例規(guī)則>pytest -v 測試用例目錄1/test_測試模塊2.py::TestClass1
============================= test session starts =============================
platform win32 -- Python 3.6.4, pytest-3.8.0, py-1.6.0, pluggy-0.7.1 -- c:\python36\python.exe
cachedir: .pytest_cache
metadata: {'Python': '3.6.4', 'Platform': 'Windows-10-10.0.17134-SP0', 'Packages': {'pytest': '3.8.0', 'py': '1.6.0', 'pluggy': '0.7.1'}, 'Plugins': {'metadata': '1.8.0', 'html': '1.20.0', 'allure-adaptor': '1.7.10'}, 'JAVA_HOME': 'C:\\Program Files\\Java\\jdk1.8.0_181'}
rootdir: D:\pytest搜索測試用例規(guī)則, inifile:
plugins: metadata-1.8.0, html-1.20.0, allure-adaptor-1.7.10
collected 1 item
測試用例目錄1/test_測試模塊2.py::TestClass1::test_class_func1 PASSED [100%]

========================== 1 passed in 0.05 seconds ===========================
# 運行指定的測試類中的所有測試用

4.運行指定的測試用例函數(shù)

我們指定運行test_testFunc1(pytest -v 測試用例目錄1/test_測試模塊1.py::test_testFunc1)

D:\pytest搜索測試用例規(guī)則>pytest -v 測試用例目錄1/test_測試模塊1.py::test_testFunc1
============================= test session starts =============================
platform win32 -- Python 3.6.4, pytest-3.8.0, py-1.6.0, pluggy-0.7.1 -- c:\python36\python.exe
cachedir: .pytest_cache
metadata: {'Python': '3.6.4', 'Platform': 'Windows-10-10.0.17134-SP0', 'Packages': {'pytest': '3.8.0', 'py': '1.6.0', 'pluggy': '0.7.1'}, 'Plugins': {'metadata': '1.8.0', 'html': '1.20.0', 'allure-adaptor': '1.7.10'}, 'JAVA_HOME': 'C:\\Program Files\\Java\\jdk1.8.0_181'}
rootdir: D:\pytest搜索測試用例規(guī)則, inifile:
plugins: metadata-1.8.0, html-1.20.0, allure-adaptor-1.7.10
collected 1 item
測試用例目錄1/test_測試模塊1.py::test_testFunc1 PASSED [100%]

========================== 1 passed in 0.03 seconds ===========================

總結

收集用例規(guī)則:搜索所有以test_開頭的測試文件,以Test開頭的測試類,以test_開頭的測試函數(shù)

執(zhí)行用例規(guī)則:從-v 參數(shù)輸出的執(zhí)行信息我們就應該能發(fā)現(xiàn),運行指定的目錄下用例 使用命令 pytest 目錄/目錄 即可;運行指定文件使用 pytest 目錄/文件 即可;運行指定類或者函數(shù) 使用命令 pytest 目錄/文件::類名::函數(shù)名 或者 pytest 目錄/文件::函數(shù)名

搜索用例規(guī)則也是我們命名用例文件,測試類,測試函數(shù)的規(guī)則;執(zhí)行指定測試用例記住規(guī)則即可

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 帶你從內(nèi)存的角度看Python中的變量

    帶你從內(nèi)存的角度看Python中的變量

    這篇文章主要為大家介紹了從內(nèi)存的角度看Python中的變量,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Python爬蟲基本庫request的基本使用

    Python爬蟲基本庫request的基本使用

    這篇文章主要介紹了Python爬蟲基本庫request的基本使用,urllib庫使用繁瑣,比如處理網(wǎng)頁驗證和Cookies時,需要編寫Opener和Handler來處理。為了更加方便的實現(xiàn)這些操作,就有了更為強大的requests庫,需要的朋友可以參考下
    2023-07-07
  • python數(shù)據(jù)處理詳情

    python數(shù)據(jù)處理詳情

    這篇文章主要介紹了python數(shù)據(jù)處理詳情,文章通過json文件的一個數(shù)據(jù)表展開對主題的詳細說明,具有一定的參考價值需要的小伙伴可以參考一下
    2022-04-04
  • python使用KNN算法識別手寫數(shù)字

    python使用KNN算法識別手寫數(shù)字

    這篇文章主要為大家詳細介紹了python使用KNN算法識別手寫數(shù)字,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • pytorch?液態(tài)算法實現(xiàn)瘦臉效果

    pytorch?液態(tài)算法實現(xiàn)瘦臉效果

    在PS中,我們可以利用液化工具對人像進行形變處理,例如瘦臉、瘦腿、放大眼睛等一系列的常規(guī)操作。今天我們來了解一下這些操作的算法原理,并用pytorch來實現(xiàn)瘦臉效果
    2021-11-11
  • 解決python爬蟲中有中文的url問題

    解決python爬蟲中有中文的url問題

    今天小編就為大家分享一篇解決python爬蟲中有中文的url問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Django項目使用CircleCI的方法示例

    Django項目使用CircleCI的方法示例

    這篇文章主要介紹了Django項目使用CircleCI的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • 10款最佳Python開發(fā)工具推薦,每一款都是神器

    10款最佳Python開發(fā)工具推薦,每一款都是神器

    這篇文章主要介紹了10款最佳Python開發(fā)工具推薦,每一款都是神器,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2020-10-10
  • Python使用sklearn庫實現(xiàn)的各種分類算法簡單應用小結

    Python使用sklearn庫實現(xiàn)的各種分類算法簡單應用小結

    這篇文章主要介紹了Python使用sklearn庫實現(xiàn)的各種分類算法,結合實例形式分析了Python使用sklearn庫實現(xiàn)的KNN、SVM、LR、決策樹、隨機森林等算法實現(xiàn)技巧,需要的朋友可以參考下
    2019-07-07
  • python批量獲取html內(nèi)body內(nèi)容的實例

    python批量獲取html內(nèi)body內(nèi)容的實例

    今天小編就為大家分享一篇python批量獲取html內(nèi)body內(nèi)容的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01

最新評論