【问题标题】:Yii assertTextPresent not workingYii assertTextPresent 不工作
【发布时间】:2012-03-18 07:06:06
【问题描述】:

这是我的环境Yii 1.1.10PHPUnit 3.6.0Selenium Server 2.20.0PHP 5.2.17

每次我在我的 Yii 应用程序上使用命令 $this->assertTextPresent('Foo');。 PHPUnit 似乎没有响应,也没有给出反馈。如果我删除了那个断言,PHPunit 正在工作。

怎么会?


无响应示例。

我尝试用 SiteTest.php 测试 phpunit(来自 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]','tester@example.com');
    $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似乎没有响应”的含义吗?
  • @DavidHarkness 我编辑了我的问题,添加了 PHPunit 没有响应的示例。 :)
  • PHPUnit 在每个测试方法和@dataProvider 显示 PHPUnit 版本之前实例化每个测试用例一次。如果这些模块或类中的任何一个调用exit 或导致错误,PHPUnit 将在没有任何输出的情况下死亡。打开php.ini 中的所有错误报告并将error_log 设置为您可以写入的文件。在运行测试之前,这应该会给你一些关于它为什么失败的线索。
  • 顺便说一句,你的最后一个例子很清楚:如果没有任何测试方法或断言,PHPUnit 将失败任何测试。

标签: php selenium yii phpunit


【解决方案1】:

其他地方可能有语法错误,尝试添加

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

到你的 bootstrap.php 结尾

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多