Testing
Test framework for system tests. Starts and interacts with a (multi node) blockchain in Go. Supports
- CLI
- Servers
- Events
- RPC
Uses:
- testify
- gjson
- sjson Server and client side are executed on the host machine
Developer
Test strategy
System tests cover the full stack via cli and a running (multi node) network. They are more expensive (in terms of time/ cpu) to run compared to unit or integration tests. Therefore, we focus on the critical path and do not cover every condition.
Execute a single test
go test -tags system_test -count=1 -v ./testing --run TestSmokeTest -verbose
- Force a binary rebuild before running the test
go test -tags system_test -count=1 -v ./testing --run TestSmokeTest -verbose -rebuild
Test cli parameters
-verboseverbose output-rebuild- rebuild artifacts-wait-timeduration - time to wait for chain events (default 30s)-nodes-countint - number of nodes in the cluster (default 4)
Port ranges
With n nodes:
26657-26657+n- RPC1317-1317+n- API9090-9090+n- GRPC16656-16656+n- P2P
For example Node 3 listens on 26660 for RPC calls
Resources
Disclaimer
The initial code was contributed from the Tgrade project. The idea was inspired by the work of the e-money team on their system tests. Thank you!