2011-08-17 83 views
2

我已经成功地获得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 
+0

是否使用该就是BEING输出原始代码短标签()?如果您的服务器不是PHP的短标签设置是不会处理它们的PHP,你会得到类似这样 –

回答

1

你做一个POST请求 - 如果你的Web服务器是其正确运行永远不会提供原始的PHP代码。检查/search/results脚本以查看它是否被实际执行。因为你得到的PHP代码,它很可能不被视为/视为一个PHP脚本,其内容被担任了为纯文本代替。

+0

感谢您的答复的问题。部分问题是它没有通过网络服务器,所以它没有显示在我的日志中。事实证明,我关闭了错误,原始PHP是代码中的一个错误的结果,我没有找到,直到我打开错误。测试正在工作。 – Luke