Testrpc
TestRPC 不確定地拋出“無效的操作碼”
我們有針對 TestRPC 執行的契約測試套件,它可能會在第一次執行時失敗並在連續的第二次執行時成功。什麼會導致這種奇怪的行為,我該如何解決?
CI歷史:
- 失敗:https ://travis-ci.org/ethereum/ens/jobs/218813195
- 成功:https ://travis-ci.org/ethereum/ens/jobs/218814360
提前致謝!
我認為這與這裡的問題相同。 在短時間內執行許多操作時,仍然需要在這里和那裡給 testRPC 一個休息時間。當然,也可能是這樣,您的測試程式碼會導致競速條件,這可能不一定是明顯的或語法錯誤。當然,如果沒有程式碼就很難判斷,但只要它在測試網上執行,你就不必太擔心。當然,同樣,這也取決於你的合約的設計方式,例如,因為無法保證在不知道細節的情況下,這種特定場景不會在主網上的真實條件下出現。
編輯: 從 Solidity 0.4.9 開始,
bad opcode
用於內部拋出,如數組越界。所以在你的情況下,我很確定你的測試程式碼中有一些條件使睾丸有時“嘗試做一些事情”,而這些事情並不打算這樣做。可能是某些事情沒有得到適當的承諾鏈,但有時還是及時出現。祝你好運 !