Esse é um projeto base para aplicacao de testes, ele possui testes de unidade, de integracao, e2e e workflow de integração continua (CI/CD). O projeto realiza teste de integracao atraves do TestContainers no serviços de: Redis, RabbitMQ, PostgreSQL, Flyway e ApiREST.
Para melhor entendimento visualize o historico de commits
Abaixo está a estrutura principal do projeto:
api-market-place/
├── application/ # Código principal da aplicação
│ ├── src/main/java/ # Pacotes e classes Java
│ ├── src/main/resources/ # Arquivos de configuração (application.properties, etc.)
│ ├── target/ # Arquivos gerados pelo Maven
├── domain/ # Camada de domínio (entidades, serviços, etc.)
├── infrastructure/ # Configurações e integrações externas (banco, mensageria, etc.)
├── tests/ # Testes unitários e de integração
├── Dockerfile # Configuração para container Docker
├── pom.xml # Arquivo de configuração do Maven
- **Java 21 ** - OpenJDK 21
- Maven - Gerenciador de dependências
- Docker - Para executar os containers
- IDE - IntelliJ IDEA Community
API para gerenciamento de produtos em marketplace, desenvolvida com Spring Boot para demonstrar boas práticas de testes de integração.
Execute os seguintes comandos para iniciar os serviços necessários:
# Banco de dados
docker run -d -p 5432:5432 --name postgres -e POSTGRES_PASSWORD=postgres postgres
# AWS Local (S3, etc)
docker run -d -p 4566:4566 -p 4510-4559:4510-4559 --name localstack localstack/localstack
# Message Broker
docker run -d -p 5672:5672 --name rabbitmq rabbitmq
# Cache
docker run -d -p 6379:6379 --name redis redis| Variável | Valor |
|---|---|
spring.profiles.active |
local,infra_local |
mvn clean install -DskipTestsjava -jar -Dspring.profiles.active=local,infra_local application/target/api-market-place.application-0.0.1-SNAPSHOT.jardocker run -d -p 8080:8080 --name=api-market-place hebcodee/api-market-place:mastermvn testmvn test -DintegrationTestsEste projeto segue Semantic Versioning.
