ÚLTIMAS NOTÍCIAS
SELECIONADO PARA VOCÊ

Testcontainers Desktop Tornar-se-á um Divisor de Águas para Investigações e Depuração

PorJohn PalmerJohn Palmer 4 min de leitura
Testcontainers
  • O Testcontainers Desktop eleva os testes unitários com portas fixas, congelamento de contêineres e flexibilidade em tempo de execução.
  • A contribuição do AtomicJar democratiza ferramentas poderosas de teste para desenvolvedores em todo o mundo.
  • Saiba como o Testcontainers Desktop revoluciona os testes em um cenário de desenvolvimento de software dinâmico.

No dinâmico cenário do desenvolvimento de software, testes e depuração eficientes são cruciais para entregar produtos de alta qualidade. A AtomicJar, conhecida por suas soluções inovadoras no campo dos testes, apresentou o Testcontainers Desktop, um aplicativo revolucionário que leva os testes de unidade ao próximo nível. Com seu conjunto abrangente de recursos, esta ferramenta promete simplificar o processo de teste, otimizar investigações e melhorar as capacidades de depuração, beneficiando finalmente desenvolvedores e equipes de QA em todo o mundo.

Capacitando os testcontainers: um salto nos testes de unidade

O Testcontainers Desktop baseia-se na fundação do Testcontainers, um framework de código aberto que permite aos desenvolvedores usar dependências reais em seus testes de unidade. Embora o Testcontainers ofereça vantagens significativas, o Testcontainers Desktop dá um passo adiante, introduzindo vários recursos e melhorias revolucionárias. Vamos explorar o que torna esta ferramenta indispensável para seu arsenal de testes.

Portas fixas para containers: um benefício para a depuração

Um dos recursos mais destacados do Testcontainers Desktop é seu suporte para portas fixas para containers. Diferente do Testcontainers, que normalmente atribui portas aleatórias aos containers, o Testcontainers Desktop permite que os desenvolvedores especifiquem portas fixas. Este recurso prova ser inestimável ao depurar aplicativos, especialmente ao usar ambientes de desenvolvimento integrado (IDEs) como o IntelliJ. Portas fixas simplificam o processo de conexão aos containers e o rastreamento de problemas, tornando a depuração mais eficiente e menos propensa a erros.

Congelar e reutilizar containers: investigar sem interrupção

Outro recurso revolucionário é a capacidade de congelar containers. Esta funcionalidade impede que os containers sejam desligados, permitindo efetivamente que os testes sejam executados indefinidamente. Quando surge um problema, os desenvolvedores podem pausar a execução do teste, investigar o problema minuciosamente e depurar no seu próprio ritmo. Uma vez concluída a análise, o congelamento pode ser removido, e a execução do teste continuará normalmente, beneficiando-se da lógica de limpeza padrão do Testcontainers. Esta abordagem fornece aos desenvolvedores maior controle durante as investigações, levando finalmente a uma depuração mais eficaz e resolução de problemas.

Alternar entre runtimes de containers: flexibilidade ao seu alcance

O Testcontainers Desktop não para nas melhorias nas capacidades de depuração e investigação — ele também oferece flexibilidade na escolha de runtimes de containers. Os desenvolvedores podem alternar sem esforço entre runtimes de containers, adaptando-se às suas necessidades e preferências específicas. Seja OrbStack, Colima, Rancher Desktop ou Podman, o Testcontainers Desktop suporta uma variedade de soluções de runtime de containers, tornando-o adaptável a diversos ambientes de desenvolvimento.

De testcontainers para testcontainers desktop: uma breve evolução

A jornada para o Testcontainers Desktop começou com a introdução do Testcontainers Cloud pela AtomicJar em novembro de 2021, que permitiu às equipes executar containers em vários ambientes e configurações. Para apoiar essa iniciativa, era necessária uma aplicação de desktop, levando ao nascimento do Testcontainers Cloud Desktop. Agora, em um movimento notável, a AtomicJar contribuiu com o Testcontainers Cloud Desktop para a comunidade como o aplicativo gratuito Testcontainers Desktop, tornando-o acessível a todos os desenvolvedores.

Testando com dependências reais: um vislumbre da implementação

Para aproveitar o poder do Testcontainers Desktop, os desenvolvedores precisam seguir alguns passos para configurar seu ambiente de teste. Primeiro, eles devem configurar o BOM (Bill of Materials) do Testcontainers no `pom.xml` do projeto ou no arquivo de build do Gradle. Este passo simplifica o gerenciamento das dependências do Testcontainers, garantindo consistência em todo o projeto.

No Maven, você pode configurar o BOM do Testcontainers da seguinte forma:

“`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>

“`

Com esta configuração, você pode usar as dependências do Testcontainers sem especificar a versão nas dependências do seu projeto. Por exemplo, para usar MySQL com o Testcontainers, você pode adicionar a seguinte dependência:

“`xml

<dependency>

    <groupId>org.testcontainers</groupId>

    <artifactId>mysql</artifactId>

    <scope>test</scope>

</dependency>

“`

Alternativamente, se você estiver usando Gradle, pode gerenciar dependências assim:

“`gradle

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

testImplementation(‘org.testcontainers:mysql’)

“`

Injetando containers em testes JUnit

Uma vez que as dependências do Testcontainers estão configuradas, você pode injetar containers Docker em seus testes JUnit com facilidade. Por exemplo, para injetar um container MySQL com valores padrão para o banco de dados, nome de usuário e senha, você pode usar o seguinte trecho de código:

“`java

@Container

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

“`

Se você precisar personalizar os valores padrão, o Testcontainers Desktop permite que você faça isso sem esforço:

“`java

@Container

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

    .withDatabaseName(“myDatabase”)

    .withUsername(“myUsername”)

    .withPassword(“myPassword”);

“`

Além disso, o Testcontainers fornece vários módulos que simplificam a integração de containers Docker em seus testes. Se o seu container específico não for coberto por um módulo dedicado, você pode usar a classe GenericContainer para trabalhar com qualquer container Docker, conforme demonstrado abaixo:

“`java

@Container

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

    .withExposedPorts(42);

“`

Com o container injetado em seu teste, você pode criar conexões com o serviço e executar sua lógica de teste de unidade sem problemas.

Saiba mais e comece

Para desenvolvedores ansiosos para explorar o potencial total do Testcontainers Desktop, documentação abrangente está disponível. Ela fornece insights profundos sobre o uso do Testcontainers para Java e guia os desenvolvedores através da configuração e utilização desta poderosa ferramenta de teste.

Os binários do Testcontainers Desktop estão disponíveis para instalação nos sistemas operacionais Mac, Windows e Linux, garantindo acessibilidade para uma ampla gama de desenvolvedores.

Uma análise mais profunda com Oleg Selajev e Sergei Egorov

Para obter uma visão ainda mais próxima do Testcontainers Desktop, Oleg Selajev, o principal desenvolvedor advocate na AtomicJar, e Sergei Egorov, cofundador e CEO na AtomicJar, exploraram seus recursos e capacidades em uma cativante discussão e demonstração no YouTube. Esta sessão perspicaz oferece uma perspectiva em primeira mão sobre como o Testcontainers Desktop pode transformar seus fluxos de trabalho de teste e melhorar seus processos de desenvolvimento de software.

Em uma era em que o desenvolvimento de software exige precisão e eficiência, o Testcontainers Desktop surge como uma ferramenta valiosa para ajudar desenvolvedores e equipes de QA a entregar código robusto e de alta qualidade. Com seus recursos inovadores, suporte para portas fixas, congelamento de containers e flexibilidade de runtime, ele capacita os desenvolvedores a testar com dependências reais de forma eficaz. À medida que a comunidade de código aberto continua a evoluir, contribuições como o Testcontainers Desktop da AtomicJar impulsionam o progresso e democratizam ferramentas poderosas para desenvolvedores em todo o mundo.

Não apenas leia notícias sobre criptomoedas. Entenda-as. Inscreva-se em nossa newsletter. É grátis.

Compartilhe este artigo

Aviso Legal. As informações fornecidas não constituem aconselhamento de investimento. Cryptopolitan.com não assume responsabilidade por quaisquer investimentos realizados com base nas informações fornecidas nesta página. Recomendamos fortemente a realização de pesquisa independente e/ou consulta com um profissional qualificado antes de tomar quaisquer decisões de investimento.

John Palmer

John Palmer

John Murangiri chegou à Cryptopolitan com habilidades em análise de mercado. John (também conhecido como JP) formou-se na Universidade de Nairobi com bacharelado em comunicação social e estudos de mídia. Ele já contribuiu anteriormente com insights sobre o mercado de criptomoedas para InsideBitcoins.com e Metacoingraph.

MAIS … NOTÍCIAS