Tivemos experiências suficientes com Testcontainers para considerarmos uma opção padrão útil na criação de um ambiente confiável para a execução de testes. É uma biblioteca, portada para várias linguagens, que "dockeriza" dependências de teste comuns — incluindo vários tipos de bancos de dados, tecnologias de enfileiramento, serviços em nuvem e dependências de teste de interface do usuário, como navegadores web — com a capacidade para executar Dockerfiles personalizados quando necessário. Funciona bem com frameworks de teste como JUnit, é flexível o suficiente para permitir que os usuários gerenciem o ciclo de vida do contêiner e a rede avançada, além de configurar rapidamente um ambiente de testes integrado. Nossos times consideraram essa biblioteca de contêineres programáveis, leves e descartáveis consistentemente capaz de tornar os testes funcionais mais confiáveis.
Criar ambientes confiáveis para executar testes automatizados é um problema perene, particularmente porque o número de componentes de que os sistemas modernos dependem continuam aumentando. Testcontainers é uma biblioteca Java que ajuda a mitigar esse desafio ao gerenciar dependências ‘dockerizadas’ para seus testes. Isso é particularmente útil para gerar instâncias de base de dados repetíveis ou infraestrutura similar, mas também pode ser usada em navegadores web para testes UI. Nossos times consideram essa biblioteca útil para deixar testes de integração mais confiáveis com esses contêineres programáveis, leves e descartáveis.