문제

This I have found on the net in various places but with no actual solution. The default code for running a test is

<?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());
    }

}
?>

This gives me the following error

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

My include path looks like this

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

Can anyone help me fix this? It isn't obvious where the class is being re-declared, is it on line 115 of the file mentioned above or somewhere else?

Thanks

도움이 되었습니까?

해결책

I have solved this by changing the line

 require_once 'PHPUnit/Framework/TestCase.php';

To

require_once 'PHPUnit/Framework.php';

The Framework.php file is the Bootstrap for PHPUnit and including this deals with all other includes. Including TestCase.php doesn't work because that isn't the Bootstrap file and thus doesn't load PHPUnit correctly.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top