# Testcontainers


Testcontainers es un conjunto de bibliotecas de código abierto que proporciona APIs sencillas y ligeras para arrancar el desarrollo local y las dependencias de pruebas con servicios reales empaquetados en contenedores Docker.
Al utilizar Testcontainers, puedes escribir pruebas que dependan de los mismos servicios que utilizas en producción, sin necesidad de usar mocks o servicios en memoria.




## Inicio rápido

### Lenguajes compatibles

Testcontainers ofrece soporte para los lenguajes más populares, y Docker patrocina el desarrollo de las siguientes implementaciones de Testcontainers:

- [Go](https://golang.testcontainers.org/quickstart/)
- [Java](https://java.testcontainers.org/quickstart/junit_5_quickstart/)

Las demás implementaciones están impulsadas por la comunidad y son mantenidas por colaboradores independientes.

### Requisitos previos

Testcontainers requiere un entorno de ejecución de contenedores compatible con la API de Docker.
Durante el desarrollo, Testcontainers se prueba activamente con versiones recientes de Docker en Linux, así como con Docker Desktop en Mac y Windows.
Estos entornos Docker son detectados y utilizados automáticamente por Testcontainers sin necesidad de configuración adicional.

Es posible configurar Testcontainers para que funcione con otras configuraciones de Docker, como un host Docker remoto o alternativas a Docker.
Sin embargo, estas configuraciones no se prueban de manera activa en el flujo de trabajo de desarrollo principal, por lo que es posible que no todas las funciones de Testcontainers estén disponibles
y que sea necesaria una configuración manual adicional.

Si tienes más preguntas sobre los detalles de configuración para tu entorno o sobre si este es compatible con la ejecución de pruebas basadas en Testcontainers,
ponte en contacto con el equipo de Testcontainers y con otros usuarios de la comunidad de Testcontainers en [Slack](https://slack.testcontainers.org/).




## Guías

Explora las guías prácticas de Testcontainers para aprender a utilizar Testcontainers
con diferentes lenguajes y frameworks populares:

- [Introducción a Testcontainers para .NET](/guides/testcontainers-dotnet-getting-started/)
- [Introducción a Testcontainers para Go](/guides/testcontainers-go-getting-started/)
- [Introducción a Testcontainers para Java](/guides/testcontainers-java-getting-started/)
- [Introducción a Testcontainers para Node.js](/guides/testcontainers-nodejs-getting-started/)
- [Introducción a Testcontainers para Python](/guides/testcontainers-python-getting-started/)
- [Probar una API REST de Spring Boot con Testcontainers](/guides/testcontainers-java-spring-boot-rest-api/)
- [Gestión del ciclo de vida del contenedor en Testcontainers](/guides/testcontainers-java-lifecycle/)
- [Reemplazar H2 con una base de datos real para pruebas](/guides/testcontainers-java-replace-h2/)
- [Configuración de servicios que se ejecutan en un contenedor](/guides/testcontainers-java-service-configuration/)
- [Probar una aplicación web ASP.NET Core](/guides/testcontainers-dotnet-aspnet-core/)
- [Probar un Kafka Listener de Spring Boot](/guides/testcontainers-java-spring-boot-kafka/)
- [Probar integraciones de API REST usando MockServer](/guides/testcontainers-java-mockserver/)
- [Probar integraciones de servicios de AWS usando LocalStack](/guides/testcontainers-java-aws-localstack/)
- [Probar aplicaciones Quarkus con Testcontainers](/guides/testcontainers-java-quarkus/)
- [Trabajar con jOOQ y Flyway utilizando Testcontainers](/guides/testcontainers-java-jooq-flyway/)
- [Probar integraciones de API REST usando WireMock](/guides/testcontainers-java-wiremock/)
- [Asegurar Spring Boot con Keycloak y Testcontainers](/guides/testcontainers-java-keycloak-spring-boot/)
- [Probar la integración de la API REST de Micronaut con WireMock](/guides/testcontainers-java-micronaut-wiremock/)
- [Probar un Kafka Listener de Micronaut](/guides/testcontainers-java-micronaut-kafka/)

