RecoveryControllerEmailIT takes 1m08s for 7 tests. The whole integration suite is 121 classes in 5m16s, so one class is 22% of it. The next slowest, UserControllerIT, is 9.1s for 41 tests.
Measured on run 35332899202, from the uploaded api-test-reports artifact.
Sharding the suite (#1318) does not remove this: the class lands on one shard and pins that shard at ~114s while the other five finish between 26s and 58s. It is the floor on what sharding can reach, and it will stay the floor as the suite grows.
What to look at
Seven tests over 68 seconds is roughly 10s each, which is the shape of real waiting rather than real work — a polled mailbox, a scheduler tick, a token expiry, or a Thread.sleep standing in for one. The InMemoryEmailClient is synchronous under the test profile, so nothing here should need to wait on delivery.
Worth checking first: whether each test drives a distinct Spring context configuration. The integration run performs 43 Flyway migrations in its first 1m43s, and a class that forces its own context pays for a full schema rebuild.
Acceptance
RecoveryControllerEmailITtakes 1m08s for 7 tests. The whole integration suite is 121 classes in 5m16s, so one class is 22% of it. The next slowest,UserControllerIT, is 9.1s for 41 tests.Measured on run 35332899202, from the uploaded
api-test-reportsartifact.Sharding the suite (#1318) does not remove this: the class lands on one shard and pins that shard at ~114s while the other five finish between 26s and 58s. It is the floor on what sharding can reach, and it will stay the floor as the suite grows.
What to look at
Seven tests over 68 seconds is roughly 10s each, which is the shape of real waiting rather than real work — a polled mailbox, a scheduler tick, a token expiry, or a
Thread.sleepstanding in for one. TheInMemoryEmailClientis synchronous under the test profile, so nothing here should need to wait on delivery.Worth checking first: whether each test drives a distinct Spring context configuration. The integration run performs 43 Flyway migrations in its first 1m43s, and a class that forces its own context pays for a full schema rebuild.
Acceptance