前言
- 這是一個pytest第三方插件,主要解決用例之間的依賴關系。如果依賴的上下文失敗后續的用例會被標識為跳過執行,相當於執行了
pytest.mark.skip
- dependency可作用的范圍有:
session
、package
、module
、class
- 安裝pip install pytest-dependency
- 官方示例:pytest-dependency
基本用法
- 下面的實現方式是簡單的實現,高級用法可以查看官方文檔
- 以下方式是在TestCase類下面編寫的用例
- 首先我們需要在用例開始的位置打上一個裝飾器
@pytest.mark.dependency()
,這是代表這條用例作為主條件,如果這條用例失敗,關聯它的用例會跳過執行。 - 在被關聯的用例上,也打上帶參數的裝飾器
@pytest.mark.dependency()
,depends
接受的參數是關聯的依賴用例名。 - 在
depends
也可以用別名的方式指定用例名。
Test類下實現方式
函數下實現方式
通過別名指定方式
定義依賴范圍
官方api詳解
我們可以看到scope可接受四種參數定義的類型('session','package','module'或'class')
scope='class'
- 作用於所屬的類,外部類不會被關聯
scope='module'
- 不傳遞scope,默認參數是'module',作用於當前文件
- 只會查找當前文件的符合條件的文件名,類里同名的方法不會被依賴
scope='package'
- 作用於當前目錄同級的依賴函數,跨目錄無法找到依賴的函數。
scope='session'
- 作用域全局,可跨目錄調用。但被依賴的用例必須先執行,如例子中的test01,否則用例會執行跳過!!!!