Closed
Description
The goal of this issue would be to improve the following
- Currently each integration test relies on separate docker containers, meaning there's some time being lost starting/stopping (and building) containers for each test individually.
- this doesn't seem strictly required, as most or even all present integration tests can be run on the same set of containers
- moreover, sharing the same set of containers means tests could be run concurrently (they're run sequentially atm)
- A corollary to 1 is that adding multiple tests which call
set_test_fixture
into the same file is not reliable as there are docker container port races ongoing- this is a problem because it forces people to split tests across different files, increasing compilation (+ docker) time as each file in
tests
folder is compiled into a separate binary and executed serially: https://corrode.dev/blog/tips-for-faster-rust-compile-times/#combine-all-integration-tests-into-a-single-binary - one way to resolve it now is by being explicit that those tests should be executed serially
- ideally though this is resolved alongside 1, i.e. by sharing docker infra between the tests
- this is a problem because it forces people to split tests across different files, increasing compilation (+ docker) time as each file in
Presumably at some point there might be tests that actually change something which other tests shouldn't observe, so the ideal solution would allow for having a separate set of containers for those tests alone, and shared ones for all the rest.
Metadata
Metadata
Assignees
Labels
No labels