簡體   English   中英

自動檢測 Python 中的非確定性行為

[英]Automatically detect non-deterministic behaviour in Python

這可能是不可能的,但我只是想知道是否有任何工具可以在我運行 Python 腳本時幫助檢測非確定性行為。 也許調試器中有一些奇特的選項? 我想我在想象,從理論上講,可以逐個指令比較堆棧指令或相同代碼的兩次后續運行之間的某些內容,從而找出任何分歧開始的地方。

我意識到很多事情都在幕后發生,所以這可能很難要求調試器或任何工具......

從本質上講,我的問題是我的測試偶爾會失敗,幾乎可以肯定是因為在某個地方,代碼意外地依賴於迭代字典的輸出順序,或者實際上無法保證順序的某些事情。 我只是想要一個工具來幫助我找到這類問題的根源:)。

以下問題是類似的,但沒有太多關於如何以自動化或通用方式真正處理此問題的建議: Testing for non-deterministic behavior of python function

我不知道有什么方法可以自動執行此操作,但是我建議您在測試失敗時啟動調試器,然后自動運行(隔夜?)直到失敗。 然后,您可以檢查變量,看看是否有任何突出之處。 如果您使用 pytest,使用--pdb標志運行將在失敗時啟動調試器。

您也可以考慮使用Hypothesis來運行生成測試用例。

您還可以考慮一遍又一遍地運行測試,收集每次運行的輸出(成功或失敗)。 當您有代表性樣本時,請比較兩者,特別是運行測試的順序!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM