Spawn test node process for integration tests (#252)

* Move tests to module in own file

* Add test-node-proc crate

* Move test node to main lib, fix compilation errors

* Fmt

* Attempted port scanning

* Use global static port to allocate open ports

* Register missing type sizes

* Fix port scanning and balances test

* Don't wait for blocks on insert_jey test

* Fmt

* Remove unused dependencies

* Download v3.0.0 rust binary

* Move substrate bin to home dir

* Add test instructions to README

* Figure out the $PATH

* Remove path echo

* Add check for missing substrate binary on the PATH

* @niklasad1 review: don't include client feature for tests
This commit is contained in:
Andrew Jones
2021-03-19 11:28:35 +00:00
committed by GitHub
parent 3b362fb072
commit bd885129f3
10 changed files with 484 additions and 201 deletions
+22
View File
@@ -6,6 +6,28 @@ A library to **sub**mit e**xt**rinsics to a [substrate](https://github.com/parit
See [examples](./examples).
## Integration Testing
Most tests require a running substrate node to communicate with. This is done by spawning an instance of the
substrate node per test. It requires an executable binary `substrate` at [`v3.0.0`](https://github.com/paritytech/substrate/releases/tag/v3.0.0) on your path.
This can be done by downloading the prebuilt binary:
```bash
curl "https://releases.parity.io/substrate/x86_64-debian:stretch/v3.0.0/substrate/substrate" --output substrate --location
chmod +x ./substrate
mv substrate ~/.local/bin
```
Or installed from source via cargo:
```bash
cargo install --git https://github.com/paritytech/substrate node-cli --tag=v3.0.0 --force
```
**Alternatives**
[substrate-api-client](https://github.com/scs/substrate-api-client) provides similar functionality.