我刚开始使用Gitlab CI(使用docker executor).面对并解决了一些初学者的问题后,我现在面临着一个非常奇怪的问题.
我所有的单元测试都在本地成功,但是当我用CI运行它们时,其中一些测试失败.
一个例子:
[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)
嗯..我知道这个错误意味着什么,但是当测试在本地成功时,调试极其困难,我不知道从哪里开始.
这是我的.yml文件的test_job部分:
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上失败的测试?
使用CI测试Laravel应用程序时是否可能需要记住一些事项?
原因是配置错误。
事实证明,大多数失败的测试都是在测试一些与邮件相关的东西。我忘记添加我的smtp凭据。
而不是抱怨凭据丢失/错误,它返回了这个奇怪的,绝对不相关的错误消息。