@Override
        public void start() {
            try {
                format();
                if (started.compareAndSet(false, true)) {
                    clusterTestKit.startup();
                    kafka.utils.TestUtils.waitUntilTrue(
                            () -> this.clusterTestKit.brokers().values().stream().allMatch(
                                    brokers -> brokers.brokerState() == BrokerState.RUNNING
                            ),
                            () -> "Broker never made it to RUNNING state.",
                            org.apache.kafka.test.TestUtils.DEFAULT_MAX_WAIT_MS,
                            100L);
                }
            } catch (Exception e) {
                throw new RuntimeException("Failed to start Raft server", e);
            }
        }
Wraps a {@link KafkaClusterTestKit} inside lifecycle methods for a test invocation. Each instance of this
class is provided with a configuration for the cluster.

This context also provides parameter resolvers for:

<ul>
    <li>ClusterConfig (the same instance passed to the constructor)</li>
    <li>ClusterInstance (includes methods to expose underlying SocketServer-s)</li>
</ul>
core/src/test/java/kafka/test/junit/RaftClusterInvocationContext.java