pytest.mark.dependency用例依賴,失效的的問題解決
問題: 在測試的過程中偶然發現用例依賴會“失效”的問題,如下test_sub2依賴於test_add2用例的執行,但test_add2通過了會跳過test_sub2的用例,或者test_add2失敗了卻執行了test_sub2的用例:
解決方法: 在被依賴的函數test_add2,其裝飾器也填寫參數如下:
【解释是因为自动生成的用例并不一定就是方法名,所以指定一个依赖名称就能更可靠的做依赖运行了】具體原因有空了多百度看看吧,這裡先記著;
注意:涉及傳參,測試數據多個的情況下,會參考最後一個測試數據的執行結果。如最後一個測試結果是false的默認test_add2執行失敗,test_sub2才會跳過執行,若test_add2最後測試結果是True,則默認test_add2執行成功,接著執行test_sub2。
下圖默認test_add2執行通過
下圖默認test_add2執行失敗
另外,若用例依賴出錯,可能存在以下原因:
1.pytest測試用例的執行順序有影響,B依賴A用例通過,若先執行B,默認被依賴用例不執行會直接跳過B;
2.函數名字,看到有說一定要用test_*命名的(親試了下被依賴函數命名為check_add2是不影響的)
3.多個裝飾器衝突,一個測試方法裝飾器>2可能衝突(暫時沒遇到,裝飾器保持<2)