0
這裏是我的環境Yii 1.1.10
,PHPUnit 3.6.0
,Selenium Server 2.20.0
,PHP 5.2.17
Yii的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 {
}
?>
這裏的結果。
你能對「PHPUnit的意義闡述結束似乎沒有響應「? – 2012-02-29 03:04:15
@DavidHarkness我編輯我的問題,添加PHPunit沒有響應的例子。 :) – GusDeCooL 2012-03-01 04:27:18
PHPUnit在顯示PHPUnit版本之前,每個測試方法和'@ dataProvider'實例化每個測試用例。如果這些模塊或類中的任何一個調用'exit'或導致錯誤,那麼PHPUnit將會在沒有任何輸出的情況下死亡。打開'php.ini'中的所有錯誤報告,並將'error_log'設置爲可以寫入的文件。這應該會給你一些線索,說明爲什麼在運行測試之前失敗。 – 2012-03-01 06:35:13