Мне удалось установить PHPUnit с моим проектом Zend Framework, используя Phing для выполнения тестов во время сборки с помощью внешнего инструмента Eclipse. Мои тесты обнаруживаются и выполняются во время сборки, но по какой-то причине PHP на страницах не интерпретируется.
Чтобы выяснить, почему мои утверждения не сработали, я добавил: echo $this->response->outputBody();
к своему тесту и понял, что он повторяет необработанный PHP. Если я добавлю echo get_class($this->response);
, я получу Zend_Controller_Response_HttpTestCase в качестве имени класса, что из того, что я собираю, является правильным.
У меня была эта проблема с Apache, где обработчики файлов не были настроены для отправки кода PHP через исполняемый файл PHP, но, насколько я знаю, это не должно быть проблемой, так как Phing / PHPUnit должен обрабатывать выполнение всего через исполняемый файл напрямую. Я еще недостаточно знаю, как работает PHPUnit или Phing, чтобы понять, что я могу делать неправильно. Есть предложения?
Вот мой тестовый класс:
<?php
class SearchControllerTest extends ControllerTestCase
{
public function setUp()
{
parent::setUp();
}
public function testSearchPizzaChicago()
{
$this->_search('restaurants', 'chicago, il');
}
private function _search($what, $where)
{
$this->request->setMethod('POST');
$this->request->setPost(
array(
'search_what' => $what,
'search_where' => $where,
)
);
$this->dispatch(Zend_Registry::get('base_url') . '/search/results');
echo $this->response->outputBody();
//echo get_class($this->response);
$this->assertQuery('#results');
}
public function tearDown()
{
/* Tear Down Routine */
}
}
Вот мой вывод на консоль при запуске одного из тестов:
Buildfile: C:\workspace\myproject\build.xml
myproject > test:
... raw PHP code here ...
[phpunit] Testsuite: SearchControllerTest
[phpunit] Tests run: 1, Failures: 1, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.25874 s
[phpunit] testSearchPizzaChicago FAILED
[phpunit] Failed asserting node DENOTED BY #results EXISTS
[phpunit] C:\workspace\frameworks\ZendFramework-1.11\library\Zend\Test\PHPUnit\Constraint\DomQuery.php:263
[phpunit] C:\workspace\frameworks\ZendFramework-1.11\library\Zend\Test\PHPUnit\ControllerTestCase.php:300
[phpunit] C:\workspace\myproject\tests\application\controllers\SearchControllerTest.php:34
[phpunit] C:\workspace\myproject\tests\application\controllers\SearchControllerTest.php:13
[phpunit] C:\wamp\bin\php\php5.3.5\PEAR\phing.php:37
BUILD FINISHED
Total time: 2.0895 seconds