DareyBlitz / MarraKash-V2

0 stars 0 forks source link

Не запускаются тесты #1

Open DareyBlitz opened 3 months ago

DareyBlitz commented 3 months ago

Описание

Не запускаются тесты. Все падают.

Шаги воспроизведения

  1. Открыть проект MarraKash-V2 в IntelliJ IDEA.
  2. Запустить Docker Desktop.
  3. Запустить DBeaver.
  4. В терминале запустить контейнер: docker-compose up.
  5. Запустить сервис с указанием пути к базе данных для mysql: java "-Dspring.datasource.url=jdbc:mysql://localhost:3306/app" -jar artifacts/aqa-shop.jar.
  6. Запустить jar-файл: java -jar artifacts/aqa-shop.jar.
  7. Настроить соединения с базой данных MySQL в DBeaver.
  8. Запустить тесты: .\gradlew clean test -DdbUrl=jdbc:mysql://localhost:3306/app.

Ожидаемый результат: Часть тестов падает, часть тестов проходят успешно. Фактический результат: все тесты падают.

Скриншот

image

Окружение

Операционная система: Windows 11 Pro; IDE: IntelliJ IDEA Community Edition 2023.2.7: Java: Java version 11.0.20.

ArRomanov commented 3 months ago

Добрый день

На будущее, подобные вопросы лучше пишите в дискорд, так проблема решится быстрее.

Судя по всему, у вас проблема с подключением к БД. Чтобы понять это наверняка, хотелось бы увидеть скриншот логов с ошибками, которые возникают в процессе запуска тестов

У вас в п.8 команда Запустить тесты: .\gradlew clean test -DdbUrl=jdbc:mysql://localhost:3306/app, вы передаете параметр dbUrl, а на самом деле в build.gradle у вас зарегистрирован параметр с именем db.url и такой же параметр используется в коде. Попробуйте запустить тесты, передавая тот же параметр, который у вас используется в коде

Для понимания приложу описание того, как вообще работают эти параметры:

Приложение. У вас в application.properties заданы параметры для подключения к БД. Также, эти параметры можно задать другим способом - в командной строке. Чтобы не изменять код, но поменять параметры подключения мы просто запускаем приложение с использованием обновленных параметров (точно с такими же именами как в файле) - java -Dspring.datasource.url=jdbc:postgresql://localhost:5432/kuularbase -Dspring.datasource.username=kuular -Dspring.datasource.password=12345v -jar aqa-shop.jar. Иногда в windows нужно добавить кавычки - java "-Dspring.datasource.url=jdbc:postgresql://localhost:5432/kuularbase" "-Dspring.datasource.username=kuular" "-Dspring.datasource.password=12345v" -jar aqa-shop.jar

С тестами чуть больше действий. а) определить переменные окружения в build.gradle аналогично тому, как у вас определена selenide.headless. Именовать новые параметры можете как угодно б) В коде, чтобы получить значения этих переменных, мы делаем так - var value = System.getProperty("your.parameter"); в) а передаем значения этих переменных так же в командной строке - ./gradlew test -Dyour.parameter=your_value. Новые переменные можете именовать как угодно, важно, чтобы имена в командной строке, в файле build.gradle и в коде совпадали. И последнее: для этих переменных можно задать в build.gradle значения по умолчанию, они будут применяться, если в командной строке параметры не переданы или если вы запускаете тесты не из терминала, а кнопкой в ide. Выглядит в build.gradle это так - systemProperty 'your.parameter', System.getProperty('your.parameter', "default_value")