Since there hasn’t been a suggested answer I am posting my solution.
Short version: decrease the connection pool size in test properties:
spring.datasource.hikari.maximum-pool-size=2
Longer version: Spring Boot 2 uses HikariCP by default for connection pooling, which has a default value of 10 for connection pool size (as of Jan 2019). While running a lot of ITs the Spring context is created multiple times, which means each context acquires 10 connections from the database. As far as I’ve observed, tests allocate connections faster than they are released. Therefore, max_connections
limit allowed by the database server (which is typically 100 by default) is reached at some point, which leads to that “too many clients” error.
By limiting the connection pool size to 2 in test properties I was able to fix that problem.