Making your own Testcontainers module for fun and profit!

A presentation at All Things Open 2024 in in Raleigh, NC, USA by Oleg Šelajev

Testcontainers libraries become more and more popular in different programming language ecosystems and are a de-facto standard for integration testing in the Java community. One of the reasons for its popularity is the ecosystem of the modules — pre-defined abstractions for creating containerized services for your tests in a single line of code.

In this session, we’ll look at the architecture of Testcontainers modules and learn how to hide a lot of complexity behind a valuable and neat abstraction.

You’ll learn the best practices around the lifecycle of Testcontainers: resource cleanup with Ryuk, waiting strategies, and out-of-the-box advanced data initialization options.

We’ll cover various options for compliance with in-house policies for Docker images, look at custom networking, and how you can offer developers a paved road to chaos engineering and other more involved topics.

Whether you’re working on technologies consumed via Testcontainers or want to improve your team’s productivity, creating a Testcontainers module is an excellent way to harness the complexity of your integration tests and contribute to the open source ecosystem!

Buzz and feedback

Here’s what was said about this presentation on social media.