我已经成功地获得PHPUnit的安装使用Phing通过一个Eclipse外部工具来执行在构建时测试我的Zend框架的项目。我的测试在构建时被发现并执行,但由于某种原因,页面中的PHP没有被解释。生PHP PHPUnit中测试响应
在努力弄清楚为什么我的断言失败了,我说: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
是否使用该就是BEING输出原始代码短标签( ?>或= ?>)?如果您的服务器不是PHP的短标签设置是不会处理它们的PHP,你会得到类似这样 –