Selenium RC - невозможно повторно объявить класс PHPUnit_Framework_TestCase - PullRequest
1 голос
/ 12 января 2011

Это я нашел в сети в разных местах, но без реального решения.Код по умолчанию для запуска теста:

<?php

set_include_path(get_include_path() . PATH_SEPARATOR . './PEAR/');
require_once 'Testing/Selenium.php';
require_once 'PHPUnit/Framework/TestCase.php';

class GoogleTest extends PHPUnit_Framework_TestCase
{
    private $selenium;

    public function setUp()
    {
        $this->selenium = new Testing_Selenium("*firefox", 
                                               "http://www.google.com");
        $this->selenium->start();
    }

    public function tearDown()
    {
        $this->selenium->stop();
    }

    public function testGoogle()
    {
        $this->selenium->open("/");
        $this->selenium->type("q", "hello world");
        $this->selenium->click("btnG");
        $this->selenium->waitForPageToLoad(10000);
        $this->assertRegExp("/Google Search/", $this->selenium->getTitle());
    }

}
?>

Это дает мне следующую ошибку

Fatal error: Cannot redeclare class PHPUnit_Framework_TestCase in /usr/lib/php/PHPUnit/Framework/TestCase.php on line 115

Мой путь включения выглядит следующим образом

.:/usr/lib/php/ZendLatest/library/:/usr/lib/php/:./PEAR/

Может кто-нибудь помочь мне это исправить?Неясно, где класс повторно объявляется, это в строке 115 файла, упомянутого выше, или где-то еще?

Спасибо

1 Ответ

1 голос
/ 13 января 2011

Я решил это, изменив строку

 require_once 'PHPUnit/Framework/TestCase.php';

Для

require_once 'PHPUnit/Framework.php';

Файл Framework.php является начальной загрузкой для PHPUnit и включает в себя все остальные включения. Включение TestCase.php не работает, потому что это не файл Bootstrap и, следовательно, неправильно загружает PHPUnit.

...