Bitcoind
在 regtest 模式下使用 bitcoind 進行自動化測試,由於競爭條件導致的問題
所以我在 regtest 模式下有多個 bitcoind 實例。1 個實例用於應用程序錢包,一個實例用於刺激可能使用者的錢包。
我想對應用程序執行各種功能和集成測試。
基本範例,如果使用者從他的錢包中發送比特幣,那麼應用程序正確接收的比特幣。
但問題是在接收節點注意到事務之前存在時間延遲(即使兩個實例都在同一台機器上)。這搞砸了我的測試,我嘗試在我的測試程式碼中加入一個 sleep(10) 函式,這增加了成功率,但有時它們仍然失敗,我不能讓我的自動化測試花費這麼長時間。(加上它看起來很不雅)。
我想知道其他人如何處理這個問題。
我會將單元測試和集成測試分開。
如果該功能需要上網或等待區塊鏈,我會對其進行集成測試,我可以減少執行頻率,例如每五分鐘執行一次。快速的功能我喜歡每 10 秒執行一次。
將錯誤連結到 pm2 和 key-metrics 等合理的時間戳日誌,可以讓您查看睡覺時發生的情況。