In Keycloak integration testsuite we use a custom extension which overrides the default Arquillian behavior and allows multiple container adapters to be present on classpath at runtime, allowing us to manage multiple instances of different types in a single test run. This might be useful in other projects too so I’m considering creating a standalone Arquillian extension/project for this. What would be the best way to do this?

I created a really heavy end-to-end test as an example for a book I co-wrote with Alex Soto. I found myself wanting exactly what you are offering. I didn’t want to confuse the reader with too much information at that point, so ended up providing some JUnit rules to manage the ‘other’ containers.

As microservices really starts to mean something then starting multiple containers of any type is becoming a requirement. Yes, Cube and Docker ‘can’ solve this, but it would still be nice to do it your way when Docker is too much pain.