安裝及入門
使用和調(diào)用方法
原有TestSuite使用方法
斷言的編寫和報(bào)告
Pytest fixtures:清晰 模塊化 易擴(kuò)展
使用Marks標(biāo)記測試用例
Monkeypatching/對模塊和環(huán)境進(jìn)行Mock
使用tmp目錄和文件
捕獲stdout及stderr輸出
捕獲警告信息
模塊及測試文件中集成doctest測試
skip及xfail: 處理不能成功的測試用例
Fixture方法及測試用例的參數(shù)化
緩存: 使用跨執(zhí)行狀態(tài)
unittest.TestCase支持
運(yùn)行Nose用例
經(jīng)典xUnit風(fēng)格的setup/teardown
安裝和使用插件
插件編寫
編寫鉤子(hook)方法
運(yùn)行日志
API參考
方法(Functions)
標(biāo)記(Marks)
鉤子(Hooks)
裝置(Fixtures)
對象(Objects)
特殊變量(Special Variables)
環(huán)境變量(Environment Variables)
配置選項(xiàng)(Configuration Options)
優(yōu)質(zhì)集成實(shí)踐
片狀測試
Pytest導(dǎo)入機(jī)制及sys.path/PYTHONPATH
配置選項(xiàng)
示例及自定義技巧
Bash自動(dòng)補(bǔ)全設(shè)置
片狀”測試是表現(xiàn)出間歇性或偶發(fā)性失敗的測試诚些,似乎具有非確定性行為浇借。有時(shí)它會(huì)通過,有時(shí)會(huì)失敗脯燃,而且不清楚為什么。本頁討論了可以提供幫助的pytest功能以及識(shí)別,修復(fù)或減輕它們的其他一般策略。
為什么片狀測試是個(gè)問題
當(dāng)使用連續(xù)集成(CI)服務(wù)器時(shí)上沐,片狀測試尤其麻煩,因此在合并新代碼更改之前必須通過所有測試楞艾。如果測試結(jié)果不是一個(gè)可靠的信號 - 測試失敗意味著代碼更改破壞了測試 - 開發(fā)人員可能會(huì)對測試結(jié)果產(chǎn)生不信任参咙,這可能導(dǎo)致忽略真正的失敗。它也是浪費(fèi)時(shí)間的一個(gè)來源硫眯,因?yàn)殚_發(fā)人員必須重新運(yùn)行測試套件并調(diào)查虛假故障蕴侧。
潛在的根本原因
系統(tǒng)狀態(tài)
從廣義上講,一個(gè)片狀測試表明測試依賴于一些未被適當(dāng)控制的系統(tǒng)狀態(tài) - 測試環(huán)境沒有充分隔離两入。更高級別的測試更有可能是因?yàn)樗麄円蕾嚫嗟臓顟B(tài)净宵。
當(dāng)測試套件并行運(yùn)行時(shí)(例如使用pytest-xdist),有時(shí)會(huì)出現(xiàn)片狀測試。這可以表明測試依賴于測試排序择葡。
也許不同的測試是在自身之后無法清理并留下導(dǎo)致片狀測試失敗的數(shù)據(jù)紧武。
片狀測試依賴于先前測試的數(shù)據(jù),該測試不會(huì)自行清理敏储,并且并行運(yùn)行以前的測試并不總是存在
修改全局
聯(lián)系作者:xiaowanzi02620
龍騰原創(chuàng)