Pytest框架+Allure生成報告
Pytest框架+Allure生成報告
❶ Pytest測試框架
內容:
1.前言
pytest 是 python 的第三方單元測試框架,比自帶 unittest 更簡潔和高效,支援315種以上的外掛,同時相容 unittest 框架。這就使得我們在 unittest 框架遷移到 pytest 框架的時候不需要重寫程式碼。接下來我們在文中來對分析下 pytest 有哪些簡潔、高效的用法。
2. 環境搭建
首先使用 pip 安裝 pytest
pip install pytest
pip install pytest-html 原生態報告模板
檢視 pytest 是否安裝成功
pip show pytest
1.建立 test_sample.py 檔案,程式碼如下:
#!/usr/bin/env python
# coding=utf-8
import pytest
def inc(x):
return x + 1
def test_answer():
assert inc(3) == 5
if __name__ =="__main__":
pytest.main()
執行結果:
test_sample.py F [ 100%]
================================== FAILURES ===================================
_________________________________ test_answer _________________________________
def test_answer():
> assert inc(3) == 5
E assert 4 == 5
E + where 4 = inc(3)
test_sample.py:19: AssertionError
== ============================ 1 failed in 0.41s ==============================
從上面的例子可以看出,pytest 中斷言的用法直接使用 assert ,和 unittest 中斷言 self.assert 用法有所區別。
3.pytest格式要求
2.總結一下:使用 pytest 執行測試需要遵行的規則:
執行:pytest 用例路徑 --html=./report/result.html 注意:–html= 沒有空格。
**還可以用main()方法來執行:**pytest.main([‘當前用例路徑’,’–html=測試報告/XX.html '])
在pytest中有四種setup和teardown,
-
1、setup_module和teardown_module在整個測試用例所在的檔案中所有的方法執行前和執行後執行,只會執行一次;
-
2、setup_class和teardown_class則在整個檔案中的一個class中所有用例的前後執行,
-
3、setup_method和teardown_method在class內的每個方法執行前後執行,
-
4、setup_function、teardown_function則是在非class下屬的每個測試方法的前後執行;
-
執行:pytest test_login.py -s -s 輸出print資訊