Könnte jemand erklären, wie und wo im Code die Aufrufe des Bitcoin-Testframeworks dem C++-Bitcoin-Kerncode oder RPC-Aufrufen zugeordnet sind, sodass die Regressionssuite die Bitcoin-Kernfunktionalität testet?
Hintergrund und weitere Details Ich schreibe eine Blockchain-Anwendung und habe darüber nachgedacht, wie ich eine Regression durchführen kann, während ich mich weiterentwickle. Ich wollte das von Bitcoin (oder jeder anderen Blockchain-Anwendung) verwendete Design nutzen. Ich würde erwarten, dass das Framework entweder C++-Klassen im Bitcoin-Kern direkt aufruft oder RPC von Python-Skripten verwendet, sodass Funktionen getestet werden.
Ich habe festgestellt, dass Bitcoin-Funktionstests in Python-Skripten geschrieben sind, wobei test_runner.py eine Reihe von Skripten aufruft, die bestimmte Funktionen testen. Aber ich kann im Bitcoin-Framework nicht erkennen, wo es schließlich den tatsächlichen Bitcoin-Core-C++-Code oder RPC aufruft.
Vielen Dank für Ihre Hilfe beim Erkennen des Codes in Python-Skripten in dem Framework, das dies tut.
Die Funktionstests testen die RPCs. Die Unit-Tests testen den C++-Code direkt durch den Aufruf der Funktionen.
Das Funktionstest-Framework verwendet eine Version von python-bitcoinrpc , die hier zu finden ist . Diese Bibliothek ermöglicht es dem Testframework, RPC-Befehle so aufzurufen, als wären sie Python-Funktionen; authproxy verarbeitet die Konvertierung in HTTP-POST-Anforderungen für den RPC-Server. Wenn Sie also Zeilen wie sehen self.nodes[0].getblockchaininfo()
, ruft es eigentlich den getblockchaininfo
Befehl auf auf node0
. Sie werden während der Funktionstests viele solcher Zeilen sehen.