Bitcoind

在 regtest 模式下使用 bitcoind 進行自動化測試,由於競爭條件導致的問題

  • June 10, 2016

所以我在 regtest 模式下有多個 bitcoind 實例。1 個實例用於應用程序錢包,一個實例用於刺激可能使用者的錢包。

我想對應用程序執行各種功能和集成測試。

基本範例,如果使用者從他的錢包中發送比特幣,那麼應用程序正確接收的比特幣。

但問題是在接收節點注意到事務之前存在時間延遲(即使兩個實例都在同一台機器上)。這搞砸了我的測試,我嘗試在我的測試程式碼中加入一個 sleep(10) 函式,這增加了成功率,但有時它們仍然失敗,我不能讓我的自動化測試花費這麼長時間。(加上它看起來很不雅)。

我想知道其他人如何處理這個問題。

我會將單元測試和集成測試分開。

如果該功能需要上網或等待區塊鏈,我會對其進行集成測試,我可以減少執行頻率,例如每五分鐘執行一次。快速的功能我喜歡每 10 秒執行一次。

將錯誤連結到 pm2 和 key-metrics 等合理的時間戳日誌,可以讓您查看睡覺時發生的情況。

引用自:https://bitcoin.stackexchange.com/questions/45773