PHPUnit - автозагрузка классов в тестах

У меня есть следующая структура в моем проекте:

/
/app
/app/models/ --UserTable.php

/lib
/lib/framework
/lib/framework/Models
/lib/framework/Db

/tests -- phpunit.xml, bootstrap.php
/tests/app
/tests/app/models --UserTableTest.php

С каталогами app и lib у меня есть различные классы, которые работают вместе для запуска моего приложения. Для настройки моих тестов я создал файл /tests/phpunit.xml и /tests/bootstrap.php

phpunit.xml

<phpunit bootstrap="bootstrap.php">
</phpunit>

bootstrap.php

<?php

function class_auto_loader($className)
{
  $parts = explode('\\', $className);
  $path = '/var/www/phpdev/' . implode('/', $parts) . '.php';

  require_once $path;
}

spl_autoload_register('class_auto_loader');

Итак, у меня есть следующий тест:

<?php

class UserTableTest extends PHPUnit_Framework_TestCase
{
  protected $_userTable;

  public function setup()
  {
    $this->_userTable = new app\models\UserTable;
  }

  public function testFindRowByPrimaryKey()
  {
    $user = $this->_userTable->find(1);

    $this->assertEquals($user->id, 1);
  }
}

Но он не может найти класс, когда я запускаю тест -PHP Fatal error: Class 'app\models\UserTable' not found in /var/www/phpdev/tests/app/models/UserTableTest.php on line 13

Что я делаю неправильно? Я пытаюсь лучше понять конфигурацию PHPUnit, поэтому я решил написать файл конфигурации и загрузочный файл самостоятельно.

Ответы на вопрос(4)

Ваш ответ на вопрос