Travis CI:即使使用自动加载器也找不到类


Travis-CI: Class not found even when using autoloader

我对Travis有点陌生,现在我正在用它来表达。我上传了我在Github上的PHP项目,当我让它通过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');
}
?>

您很可能是在OSX上开发的,它具有不区分大小写的文件系统,并且测试通过。Travis使用区分大小写文件系统。尝试将app/controllers/welcome.php重命名为app/controllers/Welcome.php

一般来说,最好遵循PSR-1标准以避免自动加载问题。

我在类文件的顶部有一个简短的php open标记。

<? 

与相反

<?php

这在遥控器上坏了,但在我的本地电脑上没有。这很奇怪,因为我本以为它也会局部断裂。

把这个放在那里,以防其他人处于同样奇怪的情况。