Gitlab CI -Laravel 5.5 — PHPUnit & quot; Tests \ TestCase not found & quot;

Я установил Gitlab CI Pipeline для проекта Laravel 5.5 (файлы в нижней части поста), и сборка прошла успешно, но тесты не пройдены, потому что PHPUnit завершается с сообщением об ошибке

Неустранимая ошибка: класс ‘Tests \ TestCase’ не найден в /builds/[User]/[Repo]/tests/Feature/DocumentTest.php в строке 8

(Очевидно, что [Пользователь] и [Репо] не являются реальными ценностями, просто не хочу обнародовать их здесь)

Я уже пробовал разные вещи, такие как глобальная установка 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

0

Решение

Что такое Tests\TestCase? я догадываюсь строка 8 в DocumentTest.php является

public class DocumentTest extends TestCase

…где TestCase является PHPUnit\Framework\TestCase, Кажется, что есть проблема с автозагрузкой или файл не импортируется TestCase, Попробуйте изменить эту строку на:

public class DocumentTest extends PHPUnit_Framework_TestCase

Я могу попытаться дать лучший ответ, если вы включите phpunit.xml а также composer.json.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]