测试仅在GitLab CI中失败,本地成功 [英] Test fails only in Gitlab CI, locally successful

查看:36
本文介绍了测试仅在GitLab CI中失败,本地成功的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚刚开始使用GitLab CI(使用docker执行器)。在面对和解决了一些初学者的问题之后,我现在面临着一个相当奇怪的问题。
我所有的单元测试都在本地成功,但是当我使用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  

以防万一-My 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凭据。

它没有抱怨凭据丢失/错误,而是返回了此奇怪的绝对无关的错误消息。

这篇关于测试仅在GitLab CI中失败,本地成功的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆