Gitlab CI внезапно выходит из строя для модуля php

У меня есть репозиторий Gitlab с интегрированным CI. Тесты проходят на моем компьютере, но не работают в Gitlab, что приводит к ошибке ниже. Это работало до вчерашнего дня, но теперь не работает даже для ранее пройденных ветвей. У кого-нибудь есть идеи?

Fatal error: Declaration of Symfony\Bundle\FrameworkBundle\Test\KernelTestCase::tearDown() must be compatible with PHPUnit\Framework\TestCase::tearDown(): void in /builds/prolocalisapp/backend/vendor/symfony/framework-bundle/Test/KernelTestCase.php on line 136

Похоже, что PHPUnit обновился до более новой версии в CI, чем у вас локально, которая вводит подсказки возвращаемого типа (PHP 7). Вы не ограничиваете его при установке? Например. composer require --dev phpunit/phpunit * установит любую версию, в отличие от composer require --dev phpunit/phpunit ^5.7, который установит только версии 5.x. Версия PHPUnit 7, вероятно, представляет собой подсказку типа возвращаемого значения.

scrowler 04.02.2019 15:50

Да, @RobbieAverill, вероятно, прав. Новейшая основная версия PHPUnit была выпущена несколько дней назад. В этой версии добавлены подсказки типов и возвращаемые типы, которые не поддерживаются Symfony TestCase (который расширяет один из PHPUnit). PHPUnit 7 по-прежнему должен быть безопасным. Вы должны увидеть ту же проблему на своем локальном компьютере при обновлении phpunit/phpunit. Когда вы совершаете composer.lock и выполняете только composer install в своем CI, вы должны быть защищены от этого, но лучше всего убедиться, что phpunit ограничен версией ниже 8.0 в вашем composer.json, как описано выше.

dbrumann 04.02.2019 17:07
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
679
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Не используйте ограничение версии звезды смерти для запроса PHPUnit или любой другой зависимости в вашем файле composer.json.

Ответ принят как подходящий

Спасибо всем за ваши ответы. У меня не было ограничений версии звезды смерти. Проблема была в версии phpunit.phar в CI. CI всегда устанавливает последнюю версию из https://phar.phpunit.de/phpunit.phar, а версия phpunit-8.0.1.phar вызывала ошибку. Я заменил URL-адрес в .gitlab-ci.sh на более старую версию https://phar.phpunit.de/phpunit-7.5.2.phar, которая решила проблему.

Как вы это сделали?

Jaroslav 05.02.2019 20:04

Хорошо, нашел: вам нужно изменить этот URL-адрес в файле .gitlab-ci.sh.

Jaroslav 05.02.2019 20:35

Например, постоянная загрузка https://phar.phpunit.de/phpunit.phar вместо https://phar.phpunit.de/phpunit-7.phar имеет тот же эффект, что и использование «ограничения версии звезды смерти» в composer.json для Composer или в phive.xml для Phive.

Sebastian Bergmann 06.02.2019 07:13

Другие вопросы по теме