我已經成功地獲得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,你會得到類似這樣 –