2011-08-17 75 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