From be1b513f8bd7646f9ceb3a7ba90952641e3af125 Mon Sep 17 00:00:00 2001 From: Kai Moritz Date: Tue, 26 Jul 2022 16:03:10 +0200 Subject: [PATCH] Verhalten des Testfalls kontrollierbarer gemacht MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * Die Awaitility-Aufrufe pollen den zu prüfenden Zustand wenn nicht anders angegeben so häufig, wie es die CPU zulässt - also ohne Verzögerung zwischen den Überprüfungen. * Das kann den Rechner temporär so überlasten, dass der erwartete Zustand in der abgewarteten Zeit gar nicht eintritt! * Z.B. aufgetreten, wenn wie hier das Commit-Interval auf 1 Sekunde gesetzt ist, das Polling von Awaitility aber noch ungebremst durchgeführt wird. * Um diese Quelle für falsche Fehler auszuschließen, wurde jetzt durchgängig ein Poll-Intervall von 1 Sekunde für Awaitility gesetzt. --- src/test/java/de/juplo/kafka/ApplicationTests.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/test/java/de/juplo/kafka/ApplicationTests.java b/src/test/java/de/juplo/kafka/ApplicationTests.java index 26a34e4..3bac537 100644 --- a/src/test/java/de/juplo/kafka/ApplicationTests.java +++ b/src/test/java/de/juplo/kafka/ApplicationTests.java @@ -40,7 +40,7 @@ import static org.awaitility.Awaitility.*; properties = { "consumer.bootstrap-server=${spring.embedded.kafka.brokers}", "consumer.topic=" + TOPIC, - "consumer.commit-interval=100ms" }) + "consumer.commit-interval=1s" }) @EmbeddedKafka(topics = TOPIC, partitions = PARTITIONS) @Slf4j class ApplicationTests @@ -84,10 +84,12 @@ class ApplicationTests await("100 records received") .atMost(Duration.ofSeconds(30)) + .pollInterval(Duration.ofSeconds(1)) .until(() -> receivedRecords.size() >= 100); await("Offsets committed") .atMost(Duration.ofSeconds(10)) + .pollInterval(Duration.ofSeconds(1)) .untilAsserted(() -> { checkSeenOffsetsForProgress(); @@ -112,6 +114,7 @@ class ApplicationTests await("Consumer failed") .atMost(Duration.ofSeconds(30)) + .pollInterval(Duration.ofSeconds(1)) .until(() -> !endlessConsumer.running()); checkSeenOffsetsForProgress(); @@ -120,6 +123,7 @@ class ApplicationTests endlessConsumer.start(); await("Consumer failed") .atMost(Duration.ofSeconds(30)) + .pollInterval(Duration.ofSeconds(1)) .until(() -> !endlessConsumer.running()); checkSeenOffsetsForProgress(); -- 2.20.1