Я создал несколько тестов с PHPUnit и Laravel. Тесты выполняются локально успешно, но в качестве задания gitlab ci возникает ошибка.
Вот лог ci:
There was 1 failure:
1) Tests\Feature\AuthTest::testAuthLoggedInIsAdmin
Expected status code 200 but received 500.
Failed asserting that false is true.
/builds/XXX/webproject/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestResponse.php:55
/builds/XX/webproject/tests/Feature/AuthTest.php:53
Для лучшей отладки и поиска решения мне нужна трассировка ошибок из проекта или error.log
с веб-сервера.
Какова лучшая практика для отладки ошибок в CI?
хорошо, решение очень простое … я не удаляю вопрос. Вот решение:
Вы должны добавить artifact
на работу. Вы можете установить артефакт, чтобы только при сбое артефакт создавался. Если в сборке произошел сбой, проект дыры сбрасывается в отдельное место. Теперь вы можете просматривать все файлы на свалке.
.gitlab-ci.yml
stages:
- test
- deploy
php-7.0:
stage: test
type: test
services:
- mysql:latest
image: tetraweb/php:7.0
script:
- bash .gitlab-ci.sh
- php vendor/bin/phpunit --coverage-text --colors=never
artifacts:
when: on_failure
name: "${CI_BUILD_STAGE}_${CI_BUILD_REF_NAME}_FAILED"paths:
- "."untracked: false
expire_in: 1 day
deploy:
stage: deploy
# etc...
Вот больше информации об артефактах.
Вы можете скачать артефакты в разделе конвейеров в gitlab:
Других решений пока нет …