如何解决此错误:"无法找到类PHPUnit_Extensions_SeleniumTestCase"

Rem*_*emy 13 selenium phpunit unit-testing cruisecontrol phpundercontrol

我正在尝试使用phpunit运行SeleniumTestCase,但我无法使用phpunit.bat脚本运行它.

我的目标是在CruiseControl和phpUnderControl中使用带有Selenium RC的phpunit.这是测试的样子:

require_once 'PHPUnit/Extensions/SeleniumTestCase.php';

class WebTest extends PHPUnit_Extensions_SeleniumTestCase
{
    protected function setUp()
    {
        $this->setBrowser('*firefox');
        $this->setBrowserUrl('http://www.example.com/');
    }

    public function testTitle()
    {
        $this->open('http://www.example.com/');
        $this->assertTitleEquals('Example Web Page');
    }
}
Run Code Online (Sandbox Code Playgroud)

我还在include_path中添加了PEAR,并在Selenium扩展中安装了PHPUnit.我用pear安装程序安装了这些,所以我猜这不是问题所在.

任何帮助将非常感谢.

谢谢,雷米

far*_*ace 16

希望这是一个比这里给出的更明确的答案(这没有解决我的问题).如果您收到此错误,请检查您的PEAR文件夹,看看"SeleniumTestCase.php"文件是否确实存在:

/PEAR/PHPUnit/Extensions/SeleniumTestCase.php
Run Code Online (Sandbox Code Playgroud)

如果不是,最简单的方法是使用PEAR卸载并重新安装PHPUnit ...

pear uninstall phpunit/PHPUnit

pear uninstall phpunit/PHPUnit_Selenium

pear install phpunit/PHPUnit
Run Code Online (Sandbox Code Playgroud)

在完成上述操作并进行单次安装后,PHPUnit_Selenium也自动安装,我不确定这是否是典型的,所以有些人可能要做...

pear install phpunit/PHPUnit_Selenium
Run Code Online (Sandbox Code Playgroud)

如果需要,请参阅http://www.phpunit.de/manual/3.5/en/installation.html获取PEAR频道信息...


小智 6

这是交易:

如果您在"(testcase文件名)中找不到"类PHPUnit_Extensions_SeleniumTestCase"问题,则必须执行以下两项操作:

1.将测试用例的文件重命名为它包含的类的名称 2.您应该从包含测试的文件夹中启动phpunit.

这应该可以解决您的问题.

安德鲁


Cia*_*ran 1

看一下 php 手册中 require_once 条目中的评论之一。

http://ie.php.net/manual/en/function.require-once.php#62838

“require_once(以及重要的 include_once)很慢

此外,如果您计划使用单元测试和模拟对象(即在您想要测试的类中包含真实类之前包括模拟类),它将无法工作,因为 require() 加载的是文件而不是类。”