【问题标题】:Test fails only in Gitlab CI, locally successful仅在 Gitlab CI 中测试失败,本地成功
【发布时间】:2023-03-22 12:03:01
【问题描述】:

我刚开始使用 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  

只是为了确定 - 我的 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 应用程序时,是否有一些事情需要记住?

【问题讨论】:

    标签: laravel phpunit gitlab-ci


    【解决方案1】:

    原因是配置错误。
    事实证明,大多数失败的测试都是在测试一些与邮件相关的东西。我忘了添加我的 smtp 凭据。

    它没有抱怨缺少/错误的凭据,而是返回了这个奇怪的绝对不相关的错误消息。

    【讨论】:

      猜你喜欢
      • 2017-11-14
      • 2018-06-05
      • 1970-01-01
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 2015-03-16
      • 1970-01-01
      • 2017-10-09
      相关资源
      最近更新 更多