【问题标题】:Gitlab CI -Laravel 5.5 - PHPUnit "Tests\TestCase not found"Gitlab CI -Laravel 5.5 - PHPUnit“找不到测试\测试用例”
【发布时间】:2018-03-11 02:15:16
【问题描述】:

我为 Laravel 5.5 项目(文章底部的文件)设置了 Gitlab CI 管道并且构建成功,但测试失败,因为 PHPUnit 退出并显示错误消息

致命错误:在第 8 行的 /builds/[User]/[Repo]/tests/Feature/DocumentTest.php 中找不到类“Tests\TestCase”

(显然,[User] 和 [Repo] 不是真正的值,只是不想在这里公开)

我已经尝试过不同的事情,比如全局安装 PHPUnit,以不同的方式调用 PHPUnit,最终都会得到相同的错误消息。

PHPUnit 在我的本地成功运行(无论我如何称呼它,它总是有效)。所以有人知道这里可能是什么问题吗?

以下是管道文件供参考:

.gitlab-ci.yml

image: woohuiren/php-laravel-env:latest

services:
  - mysql:latest
  - redis:4.0.2-alpine

before_script:
  - apk update
  - docker-php-ext-install pcntl

variables:
  MYSQL_DATABASE: testdb
  MYSQL_ROOT_PASSWORD: root

stages:
  - build
  - test

build_job:
  stage: build
  script:
    - sh .gitlab-build.sh
  artifacts:
    paths:
      - vendor/
      - bootstrap/
      - composer.phar
      - .env
  tags:
    - docker

test_job:
  stage: test
  dependencies:
    - build_job
  script:
    - sh .gitlab-ci.sh
  tags:
    - docker

.gitlab-build.sh

#!/bin/bash
set -eo pipefail

php -v
ping -c 3 mysql

php composer.phar install --no-progress --no-scripts

php artisan package:discover
cp -v .env.testing .env
php artisan key:generate
php artisan optimize
php artisan config:clear
php artisan storage:link
php artisan migrate --seed
php artisan jwt:secret
php artisan passport:install --force

.gitlab-ci.sh

#!/bin/sh
set -eo pipefail

php -v
ping -c 3 mysql

./vendor/phpunit/phpunit/phpunit -v --testdox

【问题讨论】:

  • 嘿抱歉回复晚了。不,你的回答没有解决问题。还是谢谢!
  • 谢谢,Jan。你介意分享一下你是如何解决这个问题的吗?我有兴趣了解导致此问题的原因。在这种情况下。
  • 恐怕还没有解决方案。如果我能解决它,我很乐意更新这个帖子,我假设如果我这样做你会收到通知?
  • 如果您在问题 cmets (@CyRossignol) 中@提及我的名字,或者您对我的回答发表评论,我会收到通知。如果您愿意提供更多详细信息来帮助诊断问题,我不介意帮助解决此问题。

标签: php laravel phpunit gitlab gitlab-ci


【解决方案1】:

Tests\TestCase 是什么?我猜 DocumentTest.php 中的 line 8

public class DocumentTest extends TestCase 

...TestCasePHPUnit\Framework\TestCase。似乎存在自动加载问题或文件未导入TestCase。尝试将此行更改为:

public class DocumentTest extends PHPUnit_Framework_TestCase 

如果您包含 phpunit.xmlcomposer.json,我可以尝试给出更好的答案。

【讨论】:

    【解决方案2】:

    我在本地也遇到了同样的错误。确保您的composer.json

        "psr-4": {
            "App\\": "app/",
            "Tests\\": "tests/"
        },
    

    至少运行一次composer dump-autoload 或将其作为测试程序的一部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-30
      • 2020-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-21
      • 2018-03-09
      • 2019-07-26
      相关资源
      最近更新 更多