PHPUnit抱怨Selenium

时间:2014-05-09 15:12:59

标签: php unit-testing selenium yii phpunit

很抱歉,如果这是微不足道的,但我没有找到任何建议如何解决这个问题。 我在Ubuntu上,我的Yii项目需要PHPUnit。 我已经安装了两次PHPUnit,下载并将phpunit.phar移动到'/ usr / local / bin'并运行:

composer global require "phpunit/phpunit=3.7.*"

现在我正在尝试执行我的Yii PHPUnit测试:

phpunit unit/DbTest.php

我得到的是:

PHP Warning:  require_once(PHPUnit/Extensions/SeleniumTestCase.php): 
failed to open stream: No such file or directory in 
/opt/lampp/htdocs/yii-project/framework/test/CWebTestCase.php on line 12

PHP Fatal error:  require_once(): Failed opening required 
'PHPUnit/Extensions/SeleniumTestCase.php' 
(include_path='.:/usr/share/php:/usr/share/pear') in 
/opt/lampp/htdocs/yii-project/framework/test/CWebTestCase.php on line 12

所以似乎找不到PHPUnit扩展SeleniumTestCase.php。然后,PHPUnit安装手册指出Selenium'包含在PHPUnit的PHAR发行版中。' 您能否建议我如何使我的Yii测试工作?

4 个答案:

答案 0 :(得分:9)

您需要安装phpunit的可选附加软件包才能运行Yii测试

您需要的套餐是

PHP_Invoker
DbUnit
PHPUnit_Selenium
phpunit-story

您可以使用composer通过将以下内容添加到require-dev

来安装它们
"phpunit/php-invoker": "*",
"phpunit/dbunit": ">=1.2",
"phpunit/phpunit-selenium": ">=1.2",
"phpunit/phpunit-story": "*"

使用以下命令安装相应的依赖项

composer global require 'phpunit/phpunit-selenium=*'
composer global require 'phpunit/phpunit-story=*'
composer global require 'phpunit/dbunit=*'
composer global require 'phpunit/php-invoker=*'

答案 1 :(得分:7)

我采取了哪些措施来解决这个问题:

1)我从以下网站下载了selenium扩展: https://github.com/sebastianbergmann/phpunit-selenium/tree/master/PHPUnit/Extensions 并将整个PHPUnit目录放在

/opt/lampp/htdocs/yii-project/framework/test

此时,PHPUnit停止抱怨缺少SeleniumTestCase.php。

2)然后我在

中收到有关遗失文件的错误
PHPUnit/Runner/Version.php

为了解决这个问题,我在CTestCase.php中注释掉了这些行:

//require_once('PHPUnit/Runner/Version.php');
//require_once('PHPUnit/Util/Filesystem.php'); // workaround for PHPUnit <= 3.6.11
//require_once('PHPUnit/Autoload.php');

现在我可以运行我的测试了。

答案 2 :(得分:0)

这对我有用

sudo pear config-set auto_discover 1
sudo pear channel-discover pear.phpunit.de
sudo pear install --alldeps pear.phpunit.de/PHP_Invoker
sudo pear install --alldeps pear.phpunit.de/DbUnit
sudo pear install --alldeps pear.phpunit.de/PHPUnit_Selenium
sudo pear install --alldeps pear.phpunit.de/phpunit-story

答案 3 :(得分:0)

在回复此问题时,有必要对Manquer的回复进行一点修改。有必要编辑CWebTestCase并包含Selenium2TestCase.php而不是SeleniumTestCase.php并扩展PHPUnit_Extensions_Selenium2TestCase而不是PHPUnit_Extensions_SeleniumTestCase。 Php-invoker无法在Windows上安装,也没有必要。