我剛將一個pytest測試套件從quickcheck
遷移到hypothesis
。這工作得很好(並立即發現了一些隱藏的邊緣案例錯誤),但我看到的一個主要區別與兩個物業經理之間的測試隔離有關。pytest-假設運行之間的測試隔離
quickcheck
似乎只是用不同的參數值多次運行測試函數,每次運行我的函數範圍的燈具。這也導致pytest的輸出中有更多的點。
hypothesis
然而,似乎多次運行測試函數的主體,這意味着例如單個運行之間沒有事務回滾。這意味着當我的測試向DB中插入某些內容時,我無法可靠地斷言多個數據庫條目,因爲上一次運行的所有條目都仍然存在。
我在這裏錯過了一些明顯的東西,或者是這種預期的行爲?如果是這樣,是否有一種方法可以獲得運行假設的數量作爲變量在測試中使用?
我明白了。感謝您花時間回答。我正在努力解決這個問題,在我的斷言中考慮到了這一點。事實上,它也有一些優點。 :-) 順便說一句,有沒有辦法讓測試中使用的運行次數假設已經完成了? 再次感謝! –