digital-garden/archive/Я.Практикум/Полезное/Запуск ShareIt как в Github с H2 базой.md
2024-06-13 21:01:37 +03:00

2.7 KiB
Raw Blame History

Если у вас все тесты проходят локально, но не проходят в GitHub, то скорее всего дело в schema.sql. GitHub использует базу H2 при запуске тестов, а локально вы можете разрабатывать на PostgreSQL. Но необходимо убедиться. что тесты проходят и с базой H2.

Для этого:

  • Первым делом проверьте ваш проперти файл, он должен выглядеть как во вложении.
  • Далее запустите свое приложение c профилями ci,test, как на скриншоте.
  • Запустите тесты постмана локально

Скорее всего вы получите те же ошибки, что и в гитхабе. Но иногда это не помогает. Тогда вместо третьего пункта, необходимо:

  • Создаем папки в проекте tests/postman
  • Кладем в postman файл spring.json — это файл с тестами для посотмана
  • Далее самое сложное. Нужно установить утилиту newman. Тут все зависит от вашей ОС. Именно эта утилита запускает тесты в GitHub
  • Далее из терминала в Idea запускаем следующую команду
newman run ./tests/postman/sprint.json  --delay-request 50 -r cli,htmlextra  --verbose --color on --reporter-htmlextra-darkTheme  --reporter-htmlextra-export reports/shareIt.html --reporter-htmlextra-title "Отчет по тестам" --reporter-htmlextra-logs true --reporter-htmlextra-template ./tests/.github/workflows/dashboard-template.hbs

Проперти:

spring.jpa.hibernate.ddl-auto=none
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQL10Dialect
spring.jpa.properties.hibernate.format_sql=true
spring.sql.init.mode=always

#---
spring.datasource.driverClassName=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5434/shareit
spring.datasource.username=shareit
spring.datasource.password=shareit
#---
spring.config.activate.on-profile=ci,test
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:shareit
spring.datasource.username=test
spring.datasource.password=test
#spring.h2.console.enabled=true

Файл с пропертями: