Springboot - Тесты проваливаются в трубопроводе CI Github, но, но проходят локальноJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Springboot - Тесты проваливаются в трубопроводе CI Github, но, но проходят локально

Сообщение Anonymous »

Я потратил дни, пытаясь выяснить, почему это происходит, но я не могу найти проблему. Может ли кто -нибудь помочь мне, пожалуйста? В трубопроводе я получаю следующую ошибку целостности: < /p>
CustomerControllerTest.shouldReturnListofCustomersWhenEntrepreneurUserRequest:350 » DataIntegrityViolation could not execute statement [Unique index or primary key violation: "PUBLIC.CONSTRAINT_8C768_INDEX_C ON PUBLIC.PERSON(EMAIL NULLS FIRST) VALUES ( /* 14 */ '[email protected]' )"; SQL statement:
< /code>
My Controller Test: < /p>
@AutoConfigureMockMvc
@ActiveProfiles("test")
@Import(SecurityTestConfig.class)
public class CustomerControllerTest {
@Autowired
private ObjectMapper objectMapper;

@Autowired
private MockMvc mockMvc;

@Autowired
private CustomerRepository customerRepository;

@Autowired
private CustomerMapper customerMapper;

@MockitoBean
private KeycloakUserService keycloakUserService;

@Autowired
private JwtDecoder jwtDecoder;

@Autowired
private CityRepository cityRepository;

@Autowired
private EntrepreneurRepository entrepreneurRepository;

@Autowired
private EntrepreneurMapper entrepreneurMapper;

private CustomerRequestDTO customerRequestDTO;
private Customer customer;
...
@Test
public void shouldReturnListofCustomersWhenEntrepreneurUserRequest() throws Exception {
var entrepreneurRequestDTO = new EntrepreneurRequestDTO(
"Inovação Global Tecnológica e Consultoria Avançada" +
" para Soluções Inteligentes em Desenvolvimento Sustentável" +
" e Tecnologia Integr",
new PersonRequestDTO(
"k",
"g",
"555.555.555-33",
"33.333.333/3333-33",
"(11) 95555-5555",
"abcd1234",
"abcd1234",
"[email protected]",
new AddressRequestDTO(
"Rua dos Jacarandás Floridos do Bairro" +
" das Águas Claras em Comemoração ao Centenário" +
" da Fundação da Cidade de Esperança",
"59911-111",
"Residencial das Palmeiras Altas e Horizontes" +
" Verdejantes do Vale Encantado em Celebração às" +
" Belezas Naturais da Região Serrana",
10,
cityRepository.findAll().getFirst().getId()
)
)
);
var entrepreneur = entrepreneurMapper.toEntity(entrepreneurRequestDTO);
entrepreneur.getPerson().setKeycloakId(UUID.randomUUID().toString());
entrepreneur = entrepreneurRepository.save(entrepreneur);

String roleName = KeycloakConstants.ROLE_LIST_CUSTOMERS.split("'")[1];
String tokenString = JwtTestUtil.getToken(entrepreneur.getPerson().getEmail());
Jwt jwt = JwtTestUtil.getJwt(tokenString, entrepreneur.getPerson(), List.of(
roleName
));
when(jwtDecoder.decode(tokenString)).thenReturn(jwt);

String expectedResponse = objectMapper.writeValueAsString(
customerMapper.toDTOList(List.of(customer)));

mockMvc.perform(
MockMvcRequestBuilders.get("/api/customers", new ArrayList())
.header("Authorization", "Bearer " + tokenString)
).andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.content().json(expectedResponse));

entrepreneurRepository.deleteAll();
}
< /code>
my Application-test.properties Файл: < /p>
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true
spring.jpa.show-sql=false
spring.flyway.enabled=true
spring.flyway.out-of-order=true
< /code>
my ci -файл: < /p>
name: CI

on: [pull_request, push]

jobs:
continuous-integration:
runs-on: ubuntu-latest

env:
KC_BOOTSTRAP_ADMIN_USERNAME: ${{secrets.KC_BOOTSTRAP_ADMIN_USERNAME}}
KC_BOOTSTRAP_ADMIN_PASSWORD: ${{secrets.KC_BOOTSTRAP_ADMIN_PASSWORD}}
POSTGRES_USER: ${{secrets.POSTGRES_USER}}
POSTGRES_PASSWORD: ${{secrets.POSTGRES_PASSWORD}}
POSTGRES_DB: ${{secrets.POSTGRES_DB}}
KEYCLOAK_SERVER_URL: ${{secrets.KEYCLOAK_SERVER_URL}}
KEYCLOAK_REALM: ${{secrets.KEYCLOAK_REALM}}
KEYCLOAK_CLIENT_ID: ${{secrets.KEYCLOAK_CLIENT_ID}}
KEYCLOAK_CLIENT_SECRET: ${{secrets.KEYCLOAK_CLIENT_SECRET}}
SPRING_APPLICATION_NAME: ${{secrets.SPRING_APPLICATION_NAME}}
SPRING_DATA_SOURCE_URL: ${{secrets.SPRING_DATA_SOURCE_URL}}
SPRING_DATA_SOURCE_USERNAME: ${{secrets.SPRING_DATA_SOURCE_USERNAME}}
SPRING_DATA_SOURCE_PASSWORD: ${{secrets.SPRING_DATA_SOURCE_PASSWORD}}
SPRING_DATA_SOURCE_DRIVER_CLASS_NAME: ${{secrets.SPRING_DATA_SOURCE_DRIVER_CLASS_NAME}}
SPRING_JPA_HIBERNATE_DIALECT: ${{secrets.SPRING_JPA_HIBERNATE_DIALECT}}
SPRING_JPA_HIBERNATE_DDL_AUTO: ${{secrets.SPRING_JPA_HIBERNATE_DDL_AUTO}}
RABBIT_MQ_ORDERS_GROUP_SHEET_QUEUE_NAME: ${{secrets.RABBIT_MQ_ORDERS_GROUP_SHEET_QUEUE_NAME}}
RABBIT_MQ_HOSTNAME: ${{secrets.RABBIT_MQ_HOSTNAME}}
RABBIT_MQ_PORT: ${{secrets.RABBIT_MQ_PORT}}
RABBIT_MQ_USERNAME: ${{secrets.RABBIT_MQ_USERNAME}}
RABBIT_MQ_PASSWORD: ${{secrets.RABBIT_MQ_PASSWORD}}

steps:
- uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Application building
run: docker compose -f docker-compose.yml up -d

- name: Application testing
run: |
docker exec sisconf-prod /workspace/app/mvnw test

- name: Post Application Building and Testing
run: |
docker compose -f docker-compose.yml down
< /code>
Составьте файл, используемый в Ci: < /p>
services:
keycloak:
image: quay.io/keycloak/keycloak:26.0.7
ports:
- "8000:8080"
environment:
- KC_BOOTSTRAP_ADMIN_USERNAME=${KC_BOOTSTRAP_ADMIN_USERNAME}
- KC_BOOTSTRAP_ADMIN_PASSWORD=${KC_BOOTSTRAP_ADMIN_PASSWORD}
command: start-dev
volumes:
- keycloak-data:/opt/keycloak/conf

postgres:
image: postgres:16
volumes:
- postgres-data:/var/lib/postgresql/data
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}

sisconf:
container_name: sisconf-prod
build:
context: ./
dockerfile: ./compose/prod/Dockerfile
ports:
- "8080:8080"
environment:
- KEYCLOAK_SERVER_URL=${KEYCLOAK_SERVER_URL}
- KEYCLOAK_REALM=${KEYCLOAK_REALM}
- KEYCLOAK_CLIENT_ID=${KEYCLOAK_CLIENT_ID}
- KEYCLOAK_CLIENT_SECRET=${KEYCLOAK_CLIENT_SECRET}
- SPRING_APPLICATION_NAME=${SPRING_APPLICATION_NAME}
- SPRING_DATA_SOURCE_URL=${SPRING_DATA_SOURCE_URL}
- SPRING_DATA_SOURCE_USERNAME=${SPRING_DATA_SOURCE_USERNAME}
- SPRING_DATA_SOURCE_PASSWORD=${SPRING_DATA_SOURCE_PASSWORD}
- SPRING_DATA_SOURCE_DRIVER_CLASS_NAME=${SPRING_DATA_SOURCE_DRIVER_CLASS_NAME}
- SPRING_JPA_HIBERNATE_DIALECT=${SPRING_JPA_HIBERNATE_DIALECT}
- SPRING_JPA_HIBERNATE_DDL_AUTO=${SPRING_JPA_HIBERNATE_DDL_AUTO}
- RABBIT_MQ_ORDERS_GROUP_SHEET_QUEUE_NAME=${RABBIT_MQ_ORDERS_GROUP_SHEET_QUEUE_NAME}
- RABBIT_MQ_HOSTNAME=${RABBIT_MQ_HOSTNAME}
- RABBIT_MQ_PORT=${RABBIT_MQ_PORT}
- RABBIT_MQ_USERNAME=${RABBIT_MQ_USERNAME}
- RABBIT_MQ_PASSWORD=${RABBIT_MQ_PASSWORD}
depends_on:
- keycloak
- postgres

volumes:
keycloak-data:
postgres-data:
mvn-cache:
< /code>
У меня есть другие тесты, которые создают новых предпринимателей с одним и тем же CPF, но все они убирают после каждого тестового примера. Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/794 ... ss-locally
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Проблема: тесты проходят в режиме выполнения, но не проходят в режиме отладки с помощью Qt (PySide6 — Python)
    Anonymous » » в форуме Python
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Почему мои тесты на Python Pytest проваливаются из -за ошибок тайм -аута?
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Почему мои тесты на Python Pytest проваливаются из -за ошибок тайм -аута?
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Тесты Junit проходят по отдельности, но не выполняются вместе
    Anonymous » » в форуме JAVA
    0 Ответы
    40 Просмотры
    Последнее сообщение Anonymous
  • Тесты не выполняются при запуске, но проходят в режиме отладки.
    Anonymous » » в форуме JAVA
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»