2012-02-28 98 views
0

這裏是我的環境Yii 1.1.10PHPUnit 3.6.0Selenium Server 2.20.0PHP 5.2.17Yii的assertTextPresent不工作

每次我用命令$this->assertTextPresent('Foo');我的Yii應用。 PHPUnit似乎沒有迴應,也沒有給出反饋。如果我刪除了斷言,PHPunit正在工作。

怎麼回事?


沒有響應的示例。

我試圖測試PHPUnit的與SiteTest.php(從Yii的默認測試例)

這裏是SIteTest.php

<?php 

class SiteTest extends WebTestCase 
{ 
public function testIndex() 
{ 
    $this->open(''); 
    $this->assertTextPresent('Welcome'); 
} 

public function testContact() 
{ 
    $this->open('?r=site/contact'); 
    $this->assertTextPresent('Contact Us'); 
    $this->assertElementPresent('name=ContactForm[name]'); 

    $this->type('name=ContactForm[name]','tester'); 
    $this->type('name=ContactForm[email]','[email protected]'); 
    $this->type('name=ContactForm[subject]','test subject'); 
    $this->click("//input[@value='Submit']"); 
    $this->waitForTextPresent('Body cannot be blank.'); 
} 

public function testLoginLogout() 
{ 
    $this->open(''); 
    // ensure the user is logged out 
    if($this->isTextPresent('Logout')) 
     $this->clickAndWait('link=Logout (demo)'); 

    // test login process, including validation 
    $this->clickAndWait('link=Login'); 
    $this->assertElementPresent('name=LoginForm[username]'); 
    $this->type('name=LoginForm[username]','demo'); 
    $this->click("//input[@value='Login']"); 
    $this->waitForTextPresent('Password cannot be blank.'); 
    $this->type('name=LoginForm[password]','demo'); 
    $this->clickAndWait("//input[@value='Login']"); 
    $this->assertTextNotPresent('Password cannot be blank.'); 
    $this->assertTextPresent('Logout'); 

    // test logout process 
    $this->assertTextNotPresent('Login'); 
    $this->clickAndWait('link=Logout (demo)'); 
    $this->assertTextPresent('Login'); 
} 
} 

的內容和這樣的結果

看起來像phpunit沒有響應任何東西。這裏是例子,如果我創建自己的測試單位沒有斷言或任何測試,所以我會得到錯誤。

<?php 

Class MessageTest extends CTestCase { 

} 

?> 

這裏的結果。

+1

你能對「PHPUnit的意義闡述結束似乎沒有響應「? – 2012-02-29 03:04:15

+0

@DavidHarkness我編輯我的問題,添加PHPunit沒有響應的例子。 :) – GusDeCooL 2012-03-01 04:27:18

+1

PHPUnit在顯示PHPUnit版本之前,每個測試方法和'@ dataProvider'實例化每個測試用例。如果這些模塊或類中的任何一個調用'exit'或導致錯誤,那麼PHPUnit將會在沒有任何輸出的情況下死亡。打開'php.ini'中的所有錯誤報告,並將'error_log'設置爲可以寫入的文件。這應該會給你一些線索,說明爲什麼在運行測試之前失敗。 – 2012-03-01 06:35:13

回答

0

有可能是一個語法錯誤在其他地方,嘗試添加

ini_set('error_reporting', E_ALL); // or error_reporting(E_ALL); 
ini_set('display_errors', '1'); 
ini_set('display_startup_errors', '1'); 

您bootstrap.php中的