ÚLTIMAS NOTICIAS
SELECCIONADO PARA TI

Testcontainers Desktop se convertirá en un cambio de juego para investigaciones y depuración

PorJohn PalmerJohn Palmer 4 min de lectura
Testcontainers
  • Testcontainers Desktop eleva las pruebas unitarias con puertos fijos, congelación de contenedores y flexibilidad en tiempo de ejecución.
  • La contribución de AtomicJar democratiza herramientas de prueba potentes para desarrolladores de todo el mundo.
  • Descubre cómo Testcontainers Desktop revoluciona las pruebas en un panorama de desarrollo de software dinámico.

En el dinámico panorama del desarrollo de software, las pruebas y la depuración eficientes son cruciales para entregar productos de alta calidad. AtomicJar, conocida por sus soluciones innovadoras en el ámbito de las pruebas, ha presentado Testcontainers Desktop, una aplicación innovadora que lleva las pruebas unitarias al siguiente nivel. Con su conjunto completo de características, esta herramienta promete simplificar el proceso de pruebas, agilizar las investigaciones y mejorar las capacidades de depuración, beneficiando finalmente a los desarrolladores y equipos de QA en todo el mundo.

Empoderando testcontainers: un salto en las pruebas unitarias

Testcontainers Desktop se basa en los cimientos de Testcontainers, un marco de código abierto que permite a los desarrolladores usar dependencias reales en sus pruebas unitarias. Aunque Testcontainers ofrece ventajas significativas, Testcontainers Desktop lo lleva un paso más allá introduciendo varias características y mejoras que cambian el juego. Profundicemos en lo que hace de esta herramienta un elemento imprescindible para su arsenal de pruebas.

Puertos fijos para contenedores: un beneficio para la depuración

Una de las características destacadas de Testcontainers Desktop es su soporte para puertos fijos para contenedores. A diferencia de Testcontainers, que típicamente asigna puertos aleatorios a los contenedores, Testcontainers Desktop permite a los desarrolladores especificar puertos fijos. Esta prueba resulta invaluable al depurar aplicaciones, especialmente al usar entornos de desarrollo integrados (IDE) como IntelliJ. Los puertos fijos simplifican el proceso de conexión a los contenedores y el rastreo de problemas, haciendo la depuración más eficiente y menos propensa a errores.

Congelar y reutilizar contenedores: investigar sin interrupciones

Otra característica que cambia el juego es la capacidad de congelar contenedores. Esta funcionalidad evita que los contenedores se apagen, permitiendo efectivamente que las pruebas se ejecuten indefinidamente. Cuando surge un problema, los desarrolladores pueden pausar la ejecución de la prueba, investigar el problema a fondo y depurar a su propio ritmo. Una vez completado el análisis, se puede levantar la congelación y la ejecución de la prueba continuará como de costumbre, beneficiándose de la lógica de limpieza predeterminada de Testcontainers. Este enfoque proporciona a los desarrolladores un mayor control durante las investigaciones, lo que finalmente conduce a una depuración más efectiva y resolución de problemas.

Cambiar entre tiempos de ejecución de contenedores: flexibilidad al alcance de su mano

Testcontainers Desktop no se detiene en las capacidades mejoradas de depuración e investigación; también ofrece flexibilidad en la elección de tiempos de ejecución de contenedores. Los desarrolladores pueden cambiar sin esfuerzo entre tiempos de ejecución de contenedores, adaptándose a sus necesidades y preferencias específicas. Ya sea OrbStack, Colima, Rancher Desktop o Podman, Testcontainers Desktop admite una variedad de soluciones de tiempo de ejecución de contenedores, haciéndolo adaptable a diversos entornos de desarrollo.

De testcontainers a testcontainers desktop: una breve evolución

El camino hacia Testcontainers Desktop comenzó con la introducción de Testcontainers Cloud por AtomicJar en noviembre de 2021, lo que permitió a los equipos ejecutar contenedores en varios entornos y configuraciones. Para apoyar esta iniciativa, se requería una aplicación de escritorio, lo que llevó al nacimiento de Testcontainers Cloud Desktop. Ahora, en un movimiento notable, AtomicJar ha contribuido con Testcontainers Cloud Desktop a la comunidad como la aplicación gratuita Testcontainers Desktop, haciéndola accesible para todos los desarrolladores.

Pruebas con dependencias reales: Un vistazo a la implementación

Para aprovechar el poder de Testcontainers Desktop, los desarrolladores deben seguir unos pocos pasos para configurar su entorno de pruebas. En primer lugar, deben configurar el BOM (Bill of Materials) de Testcontainers en el `pom.xml` o en el archivo de compilación de Gradle de su proyecto. Este paso simplifica la gestión de las dependencias de Testcontainers, asegurando la coherencia en todo el proyecto.

En Maven, puedes configurar el BOM de Testcontainers de la siguiente manera:

“`xml

<dependencyManagement>

  <dependencies>

    <dependency>

      <groupId>org.testcontainers</groupId>

      <artifactId>testcontainers-bom</artifactId>

      <version>1.19.0</version>

      <type>pom</type>

      <scope>import</scope>

    </dependency>

  </dependencies>

</dependencyManagement>

“`

Con esta configuración, puedes usar las dependencias de Testcontainers sin especificar la versión en las dependencias de tu proyecto. Por ejemplo, para usar MySQL con Testcontainers, puedes añadir la siguiente dependencia:

“`xml

<dependency>

    <groupId>org.testcontainers</groupId>

    <artifactId>mysql</artifactId>

    <scope>test</scope>

</dependency>

“`

Alternativamente, si estás usando Gradle, puedes gestionar las dependencias de esta manera:

“`gradle

implementation platform(‘org.testcontainers:testcontainers-bom:1.19.0’)

testImplementation(‘org.testcontainers:mysql’)

“`

Inyección de contenedores en pruebas JUnit

Una vez que las dependencias de Testcontainers están configuradas, puedes inyectar contenedores Docker en tus pruebas JUnit con facilidad. Por ejemplo, para inyectar un contenedor MySQL con los valores predeterminados para la base de datos, el nombre de usuario y la contraseña, puedes usar el siguiente fragmento de código:

“`java

@Container

private static final MySQLContainer mySQLContainer = new MySQLContainer<>(“mysql:8.1.0”);

“`

Si necesitas personalizar los valores predeterminados, Testcontainers Desktop te permite hacerlo sin esfuerzo:

“`java

@Container

private static final MySQLContainer mySQLContainer = new MySQLContainer<>(“mysql:8.1.0”)

    .withDatabaseName(“myDatabase”)

    .withUsername(“myUsername”)

    .withPassword(“myPassword”);

“`

Además, Testcontainers proporciona varios módulos que simplifican la integración de contenedores Docker en tus pruebas. Si tu contenedor específico no está cubierto por un módulo dedicado, puedes usar la clase GenericContainer para trabajar con cualquier contenedor Docker, como se demuestra a continuación:

“`java

@Container

private static final GenericContainer myContainer = new GenericContainer(“redis:7.2.1”)     

    .withExposedPorts(42);

“`

Con el contenedor inyectado en tu prueba, puedes crear conexiones al servicio y ejecutar la lógica de tu prueba unitaria sin problemas.

Más información y primeros pasos

Para los desarrolladores ansiosos por explorar todo el potencial de Testcontainers Desktop, hay documentación completa disponible. Proporciona información detallada sobre el uso de Testcontainers para Java y guía a los desarrolladores a través de la configuración y el uso de esta potente herramienta de pruebas.

Los binarios de Testcontainers Desktop están disponibles para su instalación en los sistemas operativos Mac, Windows y Linux, asegurando la accesibilidad para una amplia gama de desarrolladores.

Un análisis más profundo con Oleg Selajev y Sergei Egorov

Para obtener una visión aún más cercana de Testcontainers Desktop, Oleg Selajev, el principal defensor del desarrollo en AtomicJar, y Sergei Egorov, cofundador y CEO en AtomicJar, han profundizado en sus características y capacidades en una cautivadora discusión y demostración en YouTube. Esta sesión informativa ofrece una perspectiva en primera persona sobre cómo Testcontainers Desktop puede transformar tus flujos de trabajo de pruebas y mejorar tus procesos de desarrollo de software.

En una era en la que el desarrollo de software exige precisión y eficiencia, Testcontainers Desktop surge como una herramienta valiosa para ayudar a los desarrolladores y equipos de QA a entregar código robusto y de alta calidad. Con sus características innovadoras, soporte para puertos fijos, congelación de contenedores y flexibilidad en tiempo de ejecución, empodera a los desarrolladores para probar con dependencias reales de manera efectiva. A medida que la comunidad de código abierto continúa evolucionando, contribuciones como Testcontainers Desktop de AtomicJar impulsan el progreso y democratizan herramientas poderosas para desarrolladores en todo el mundo.

Las mentes más inteligentes del mundo cripto ya leen nuestro boletín. ¿Quieres unirte? Únete a ellos.

Comparte este artículo

Aviso de responsabilidad. La información proporcionada no es un consejo de trading. Cryptopolitan.com no asumimos responsabilidad alguna por las inversiones realizadas basándose en la información proporcionada en esta página. Recomendamos encarecidamente la investigación independiente y/o la consulta con un profesional calificado antes de tomar cualquier decisión de inversión.

John Palmer

John Palmer

John Murangiri llegó a Cryptopolitan con habilidades en análisis de mercado. John (también conocido como JP) se graduó de la Universidad de Nairobi con un título de licenciatura en comunicación masiva y estudios de medios. Anteriormente, ha contribuido con perspectivas del mercado de criptomonedas a InsideBitcoins.com y Metacoingraph.

MÁS … NOTICIAS