我在网上发现了各种各样的地方,但没有实际解决方案。运行测试的默认代码是
<?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行还是在其他地方?
由于
答案 0 :(得分:1)
我通过更改行
解决了这个问题 require_once 'PHPUnit/Framework/TestCase.php';
要
require_once 'PHPUnit/Framework.php';
Framework.php
文件是PHPUnit的Bootstrap,包括此处理所有其他包含。包含TestCase.php
不起作用,因为它不是Bootstrap文件,因此无法正确加载PHPUnit。