1.查看pytest命令行參數,能夠用pytest -h 或pytest --help查看node
C:\Users\admin>pytest -h usage: pytest [options] [file_or_dir] [file_or_dir] [...] positional arguments: file_or_dir general: -k EXPRESSION only run tests which match the given substring expression. An expression is a python evaluatable expression where all names are substring-matched against test names and their parent classes. Example: -k 'test_method or test_other' matches all test functions and classes whose name contains 'test_method' or 'test_other', while -k 'not test_method' matches those that don't contain 'test_method' in their names. Additionally keywords are matched to classes and functions containing extra names in their 'extra_keyword_matches' set, as well as functions which have names assigned directly to them. -m MARKEXPR only run tests matching given mark expression. example: -m 'mark1 and not mark2'. --markers show markers (builtin, plugin and per-project ones). -x, --exitfirst exit instantly on first error or failed test reporting: -v, --verbose increase verbosity. -q, --quiet decrease verbosity. --verbosity=VERBOSE set verbosity 只貼了一部分
D:YOYO\ __init__.py test_class.py # content of test_class.py class TestClass: def test_one(self): x = "this" assert 'h' in x def test_two(self): x = "hello" assert hasattr(x, 'check') def test_three(self): a = "hello" b = "hello world" assert a in b test_sample.py # content of test_sample.py def func(x): return x +1 def test_answer(): assert func(3)==5
cmd執行pytest用例有三種方法,如下三種方法均可以,通常推薦第一個python
pytestexpress
py.testsession
python -m pytest函數
若是不帶參數,在某個文件夾下執行時,它會查找該文件夾下全部的符合條件的用例(查看用例設計原則)測試
1.執行某個目錄下全部的用例ui
pytest 文件名/this
2.執行某一個py文件下用例lua
pytest 腳本名稱.py命令行
3.-k 按關鍵字匹配
pytest -k "MyClass and not method"
這將運行包含與給定字符串表達式匹配的名稱的測試,其中包括Python
使用文件名,類名和函數名做爲變量的運算符。 上面的例子將運行
TestMyClass.test_something但不運行TestMyClass.test_method_simple
4.按節點運行
每一個收集的測試都分配了一個惟一的nodeid,它由模塊文件名和後跟說明符組成
來自參數化的類名,函數名和參數,由:: characters分隔。
運行.py模塊裏面的某個函數
pytest test_mod.py::test_func
運行.py模塊裏面,測試類裏面的某個方法
pytest test_mod.py::TestClass::test_method
5.標記表達式
pytest -m slow
將運行用@ pytest.mark.slow裝飾器修飾的全部測試。
6.從包裏面運行
pytest --pyargs pkg.testing
這將導入pkg.testing並使用其文件系統位置來查找和運行測試。
pytest -x test_class.py
從運行結果能夠看出,原本有3個用例,第二個用例失敗後就沒繼續往下執行了
D:\YOYO>pytest -x test_class.py ============================= test session starts ============================= platform win32 -- Python 3.6.0, pytest-3.6.3, py-1.5.4, pluggy-0.6.0 rootdir: D:\YOYO, inifile: collected 3 items test_class.py .F ================================== FAILURES =================================== _____________________________ TestClass.test_two ______________________________ self = <YOYO.test_class.TestClass object at 0x0000000003A29780> def test_two(self): x = "hello" > assert hasattr(x, 'check') E AssertionError: assert False E + where False = hasattr('hello', 'check') test_class.py:11: AssertionError ===================== 1 failed, 1 passed in 0.05 seconds ======================
pytest --maxfail=1
當用例錯誤個數達到指定數量時,中止測試
D:\YOYO>pytest --maxfail=1 ============================= test session starts ============================= platform win32 -- Python 3.6.0, pytest-3.6.3, py-1.5.4, pluggy-0.6.0 rootdir: D:\YOYO, inifile: collected 4 items test_class.py .F ================================== FAILURES =================================== _____________________________ TestClass.test_two ______________________________ self = <YOYO.test_class.TestClass object at 0x0000000003A3D080> def test_two(self): x = "hello" > assert hasattr(x, 'check') E AssertionError: assert False E + where False = hasattr('hello', 'check') test_class.py:11: AssertionError ===================== 1 failed, 1 passed in 0.06 seconds ======================
---------------------------------pytest結合selenium自動化完整版-------------------------
全書購買地址 https://yuedu.baidu.com/ebook/902224ab27fff705cc1755270722192e4536582b
做者:上海-悠悠 QQ交流羣:874033608
也能夠關注下個人我的公衆號:yoyoketang