quarkus-dev-services-and-testing
Ajuda seu agente a escrever e corrigir testes para projetos Quarkus. Ele configura automaticamente contêineres e facilita a integração de testes.
O que ela faz
Esta ferramenta ajuda a testar seu código Quarkus automaticamente. Ela inicia bancos de dados e outros serviços necessários para os testes sem que você precise configurá-los manualmente.
Quando usar
- ✓Ao escrever testes para seu projeto Quarkus.
- ✓Quando precisar simular um banco de dados para um teste.
- ✓Ao corrigir erros em testes existentes.
Exemplo do que pedir para a IA
“Quero testar minha API de usuários com um banco de dados PostgreSQL.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Quando você executa testes, o Quarkus verifica se precisa de serviços como bancos de dados. Se precisar e não encontrar um configurado, ele inicia um automaticamente usando o Docker. Isso garante que seus testes tenham o ambiente necessário para rodar.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill quarkus-dev-services-and-testingOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/quarkus-dev-services-and-testing/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Quarkus Dev Services e Testes
Verifique primeiro a versão do Quarkus do projeto. O uso do Testcontainers, independente de framework, pode usar a habilidade opcional java-testcontainers se instalada (caso contrário, veja https://java.testcontainers.org/); esta habilidade cobre apenas recursos específicos do Quarkus.
Dev Services
Nos modos de desenvolvimento e teste, o Quarkus inicia contêineres (PostgreSQL, MySQL, Kafka, Redis, Keycloak, ...) automaticamente quando a extensão relacionada está presente e nenhuma conexão está configurada (Docker ou Podman necessário).
# Global switch
quarkus.devservices.enabled=true
%dev.quarkus.datasource.devservices.image-name=postgres:17
# Reuse container across restarts (also requires testcontainers.reuse.enable=true in ~/.testcontainers.properties)
quarkus.datasource.devservices.reuse=true
# Fixed port (optional)
quarkus.datasource.devservices.port=5432
# Share between apps in dev mode
quarkus.kafka.devservices.shared=true
Desabilite um com quarkus.<ext>.devservices.enabled=false; configurar uma URL/host explicitamente também o desabilita. O Dev UI (/q/dev-ui) lista os serviços em execução.
Testes
@QuarkusTest
class GreetingResourceTest {
@Test
void hello() {
given().when().get("/hello").then().statusCode(200).body(is("Hello"));
}
}
Dependências, escopo de teste: io.quarkus:quarkus-junit (3.31+, o que o template 3.40 gera) ou quarkus-junit5 (template 3.27; ainda publicado e resolúvel em 3.40) e io.rest-assured:rest-assured. Mantenha o que o projeto já usa.
- Injete beans em testes com
@Inject; simule beans CDI comio.quarkus.test.InjectMock(quarkus-junit-mockito, anteriormentequarkus-junit5-mockito; simulação verificada de um beanPanacheRepositoryem 3.40.1). - Segurança:
@TestSecurity(user="alice", roles="admin")(quarkus-test-security). - Perfis:
@TestProfile(MyProfile.class)comQuarkusTestProfile#getConfigOverrides(); reinicia o aplicativo, então use com moderação. - Transações:
@TestTransactionreverte após o teste. @QuarkusIntegrationTestexecuta contra o artefato empacotado (jar, binário nativo ou contêiner); você não pode injetar beans lá, apenas chamá-lo via HTTP.
Recursos de Teste
public class WireMockResource implements QuarkusTestResourceLifecycleManager {
public Map<String,String> start() { /* start, return config overrides */ return Map.of(); }
public void stop() { }
}
@QuarkusTest
@WithTestResource(WireMockResource.class) // io.quarkus.test.common.WithTestResource
class MyTest { }
@WithTestResource (verificado em 3.40.1) aplica-se à classe de teste anotada; o Quarkus reinicia o aplicativo quando o conjunto de recursos muda. O antigo @QuarkusTestResource ainda compila e executa em 3.40.1, mas se aplica globalmente a todos os testes, a menos que restrictToAnnotatedClass = true. Não coloque pontos de injeção @ConfigProperty para valores fornecidos por recursos em uma classe de teste: as classes de teste são escaneadas como beans, e o aplicativo falha ao iniciar para outras classes de teste que não possuem o recurso. Prefira Dev Services em vez de recursos personalizados quando uma extensão o suportar.
Executando
./mvnw test # unit/@QuarkusTest
./mvnw verify -DskipITs=false # also runs *IT via maven-failsafe-plugin
Atenção: classes *IT (@QuarkusIntegrationTest) são executadas pelo Failsafe na fase verify, e precisam do objetivo quarkus-maven-plugin build e da configuração do failsafe (com propriedades do sistema java.util.logging.manager e maven.home) geradas pelo template do projeto. ./mvnw test as ignora silenciosamente, e os templates 3.27 e 3.40 também definem <skipITs>true</skipITs>, então um simples ./mvnw verify também as ignora (verificado): passe -DskipITs=false (ou -Dnative, cujo perfil o ativa). Com -Dnative e uma construção de contêiner no macOS ou Windows, o binário é um ELF Linux e o IT falha com Exit code is: '126'; use uma construção local do Mandrel/GraalVM para esses casos.
Testes contínuos: execute ./mvnw quarkus:dev e pressione r para iniciar ou reexecutar testes e p para pausá-los (h lista os atalhos); uma vez em execução, os testes são reexecutados em mudanças de código (quarkus.test.continuous-testing=enabled|paused|disabled).
Verificado no Quarkus 3.40.1 (JDK 26, Docker Desktop): @QuarkusTest com Dev Services PostgreSQL (postgres:18 por padrão), @TestTransaction, @TestProfile, @TestSecurity, @InjectMock, *IT via Failsafe. @QuarkusTest e Dev Services em 3.27.6 também.
Checklist
- Use Dev Services antes de escrever um recurso personalizado.
…
Perguntas frequentes
Preciso instalar algo extra?
Você precisa ter o Docker ou Podman instalado e rodando no seu computador para que os serviços possam ser iniciados automaticamente.
Como desativo essa funcionalidade?
Você pode desativar os serviços automáticos para um tipo específico de serviço (como banco de dados) ou para todos, alterando as configurações do Quarkus.
Posso usar isso com outros tipos de testes?
Sim, esta ferramenta é focada em testes dentro do ecossistema Quarkus, facilitando a integração com as funcionalidades específicas do framework.
Detalhes
Descrição original do autor
Quarkus Dev Services and testing: zero-config containers, @QuarkusTest, @QuarkusIntegrationTest, test resources, RestAssured, @InjectMock, profiles and continuous testing. Use when writing or fixing tests in a Quarkus project.
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5321
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
cpp-testing
Faz seu agente escrever e melhorar testes para código C++. Ajuda a configurar ferramentas de teste e a corrigir erros.
affaan-m/ECC
csharp-testing
Ajuda seu agente a criar testes para código C# e .NET. Ele usa as melhores práticas para garantir que os testes sejam eficientes e confiáveis.
affaan-m/ECC
django-tdd
Faz seu agente aplicar estratégias de teste para Django com pytest-django e TDD. É útil para escrever testes robustos e garantir a qualidade do código, especialmente para APIs DRF.
affaan-m/ECC