Bitcoin-Core-Development
我可以加快功能測試的執行嗎?
我正在使用測試執行器執行比特幣核心功能測試,並且需要很長時間才能通過所有測試。有沒有辦法加快速度?
test/functional/test_runner.py --extended
比特幣核心測試自述文件指出:
預設情況下,test_runner 最多可以並行執行 4 個測試。要指定要執行的作業數,請追加
--jobs=n
單個測試和 test_runner 工具有許多命令行選項。跑去
test/functional/test_runner.py -h
看看他們。Pieter Wuille 還解釋了他如何在GitHub上將總時間降至 4 分鐘以下:
您可以並行執行它們;如果你有足夠的 RAM 非常均勻。
test_runner.py -j60
在我的 4 核 32 GiB RAM 系統上執行良好,耗時 3m46s。很多時候都是程序相互等待,所以它實際上不受 CPU 限制。如果您增加並行度,一些測試可能會由於超時而失敗,因為功能測試需要一個相當快速且沒有負擔的系統來執行。如果您因超時而遇到故障,則減少並行度和/或增加超時規模(兩者都是測試執行程序參數)是兩種嘗試方法。
或者,您可以使用 Mac 的以下命令在 RAM 磁碟上執行功能測試:
diskutil erasevolume HFS+ RAMDisk `hdiutil attach -nomount ram://10485760` test/functional/test_runner.py --jobs=50 --cachedir=/Volumes/RAMDisk/cache --tmpdir=/Volumes/RAMDisk/tmp
感謝 wumpus 和 provoostenator 在 IRC 上添加評論。