Я только что установил версию PHPUnit 3.7.19 от Себастьяна Бергмана через Composer и написал класс, который я хотел бы выполнить для тестирования.Автозагрузка классов в PHPUnit с использованием Composer и autoload.php
Я хотел бы, чтобы все мои классы автозагружаемые в каждом модульном тесте без необходимости использовать include
или require
в верхней части моего теста, но это, оказывается, трудно!
Это то, что моя структура каталогов выглядит (замыкающая/слэш указывает каталог, а не файл):
- composer.json
- composer.lock
- composer.phar
- Библиотека/
- returning.php
- тесты/
- returningTest.php
- поставщик/
- бен/
- PHPUnit
- композитор/
- PHPUnit/
- Symfony/
- autoload.php
- бен/
Мой файл composer.json включает в себя следующее:
"require": {
"phpunit/phpunit": "3.7.*",
"phpunit/phpunit-selenium": ">=1.2"
}
Мой returning.php файл класса включает в себя следующее:
<?php
class Returning {
public $var;
function __construct(){
$this->var = 1;
}
}
?>
My returningTest.php тестовый файл включает в себя следующее:
<?php
class ReturningTest extends PHPUnit_Framework_TestCase
{
protected $obj = null;
protected function setUp()
{
$this->obj = new Returning;
}
public function testExample()
{
$this->assertEquals(1, $this->obj->var);
}
protected function tearDown()
{
}
}
?>
Однако, когда я бегу ./vendor/bin/phpunit tests
из командной строки, я получаю следующее сообщение об ошибке:
PHP Fatal error: Class 'Returning' not found in /files/code/php/db/tests/returningTest.php on line 8
Я заметил, что composer
произвел autoload.php
файл в vendor/autoload.php
, но не уверен, что это относится к моей проблеме.
Кроме того, в некоторых других ответах на Stack Overflow люди упоминали об использовании PSR-0 в композиторе и в команде namespace
в PHP, но мне не удалось использовать ни один из них.
Пожалуйста, помогите!Я просто хочу автозагружать свои классы в PHPUnit, поэтому я могу просто использовать их для создания объектов, не беспокоясь о include
или require
.
обновление: 14 августа 2013
Теперь я создал Open Source проект под названием PHPUnit Skeleton, чтобы помочь вам встать и работает с тестированием PHPUnit легко для вашего проекта.
спасибо за организацию вопрос хорошо. – kta