Тест не пройден только в Gitlab CI, локально успешно - PullRequest
0 голосов
/ 09 декабря 2018

Я только начинаю с Gitlab CI (с помощью исполнителя Docker).После того, как я столкнулся с некоторыми проблемами новичка и решил их, я столкнулся с довольно странной проблемой.
Все мои модульные тесты выполняются локально, но когда я запускаю их с КИ, некоторые из них терпят неудачу.

Один пример:

[2018-12-09 18:05:57] testing.ERROR: Trying to get property 'email' of non-object {"userId":834,"email":"hugh.will@example.org","exception":"[object] (ErrorException(code: 0): Trying to get property 'email' of non-object at /builds/.../laravel/framework/src/Illuminate/Mail/Mailable.php:492)  

Хорошо ... Я знаю, что означает эта ошибка, но поскольку тест проходит локально, его крайне сложно отладить, и я не знаю, с чего начать.

Вот часть test_job моего файла .yml:

test_job:
  stage: test
  services:
  - mysql:5.7
  - redis:latest
  artifacts:
    when: always
    paths:
    - storage/logs/
  dependencies:
  - build_job
  script:
  - sh .gitlab-test.sh
  tags:
  - docker  

Просто чтобы быть уверенным - мой test.sh

#!/bin/sh
set -xe
php -v
ping -c 3 mysql
php artisan migrate
php artisan db:seed --class=TestingSeeder
php vendor/bin/phpunit --coverage-text --colors  

Мой вопрос: Кажется, что где-то не удается выполнить синтаксический анализ json, но Mailable - это компонент Laravel, который должен (и действительно работает).
Есть ли какие-либо известные проблемы сLaravel 5.5 и Gitlab CI?Как я могу отладить тест, который не проходит только на Gitlab CI?
Есть ли что-то, что нужно помнить при тестировании приложения Laravel с использованием CI?

1 Ответ

0 голосов
/ 13 декабря 2018

Причиной была неправильная конфигурация.
Оказалось, что большинство тестов, которые не прошли, были проверкой некоторых вещей, связанных с почтой.Я забыл добавить свои учетные данные SMTP.

Вместо того, чтобы жаловаться на отсутствие / неверность учетных данных, он вернул это странное абсолютно не связанное сообщение об ошибке.

...