3.5.5 Multi-Service Integration Test Orchestration

extra
Article in preparation — showing conspect notes

Application integration tests often need databases, queues, RPC servers, migrations, and mocks rather than one test executable.

  • rules_itest models long-running services, one-shot setup tasks, service groups, dependency ordering, health checks, allocated ports, and graceful shutdown.
  • service_test starts a fresh scenario, waits for readiness, runs an ordinary test target against it, and tears the services down.
  • The same graph can support a bazel run development environment with ibazel reload.
  • Per-service reload injects a cache-busting input, so it is opt-in. keep the ordinary CI test contract cacheable.
  • A ready process, an allocated port, and a healthy service are separate states that the scenario must model explicitly.
  • Hermeticity and reproducibility still depend on pinned service images or binaries, declared inputs, and avoiding ambient host state.