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

时间:2014-11-12 18:48:36

标签: php phpunit travis-ci autoloader

我是特拉维斯的新人,我现在正在用它来表达。我在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');
}
?>

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

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

<? 

而不是

<?php

这打破了遥控器,但不是我当地的。这很奇怪,因为我也希望它能在当地打破。

将其放在那里以防其他人处于相同的奇怪情况。