Travis-CI: класс не найден даже при использовании автозагрузчика

Я немного новичок с Трэвисом, и сейчас я экспериментирую с этим. Я загрузил мой проект PHP на Github и когда я позволю ему проверить через Travis это терпит неудачу и дает мне эту ошибку.

PHP Fatal error:  Class 'controllers\Welcome' not found in /home/travis/build/ezylot/PHPSkeleton/tests/controllers/welcomeTest.php on line 4

Я использую автозагрузчик для загрузки классов, и это не проблема на моей локальной машине. Я включаю автозагрузчик в bootsrap.php вместе с загрузчиком в файле PHPUnit Konfiguration-XML.

<?php
if (!@include __DIR__ . '/../vendor/autoload.php') {
die('You must set up the project dependencies, run the following commands:
wget http://getcomposer.org/composer.phar
php composer.phar install');
}
?>

2

Решение

Скорее всего, вы разрабатываете для OSX, которая имеет нечувствительную к регистру файловую систему и тесты пройдены. Трэвис использует чувствительную к регистру файловую систему. Попробуйте переименовать app/controllers/welcome.php в app/controllers/Welcome.php,

В общем, это хорошая идея, чтобы следовать PSR-1 Стандарт, чтобы избежать проблем с автозагрузкой.

3

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

У меня был короткий открытый тег php в верхней части файла класса.

<?

в отличие от

<?php

Это сломало его на пульте, но не на моем местном. Что странно, потому что я ожидал, что это тоже сломается локально.

Выкладываем это на случай, если кто-то еще окажется в такой же странной ситуации.

1

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