PHPUnit抱怨Selenium

Ala*_*lan 6 php selenium phpunit unit-testing yii

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

composer global require "phpunit/phpunit=3.7.*"
Run Code Online (Sandbox Code Playgroud)

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

phpunit unit/DbTest.php
Run Code Online (Sandbox Code Playgroud)

而我得到的是:

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
Run Code Online (Sandbox Code Playgroud)

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

Man*_*uer 9

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

你需要的包裹是

PHP_Invoker
DbUnit
PHPUnit_Selenium
phpunit-story
Run Code Online (Sandbox Code Playgroud)

您可以使用composer通过添加以下内容来安装它们 require-dev

"phpunit/php-invoker": "*",
"phpunit/dbunit": ">=1.2",
"phpunit/phpunit-selenium": ">=1.2",
"phpunit/phpunit-story": "*"
Run Code Online (Sandbox Code Playgroud)

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

composer global require 'phpunit/phpunit-selenium=*'
composer global require 'phpunit/phpunit-story=*'
composer global require 'phpunit/dbunit=*'
composer global require 'phpunit/php-invoker=*'
Run Code Online (Sandbox Code Playgroud)


Ala*_*lan 7

我做了什么来解决这个问题:

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

/opt/lampp/htdocs/yii-project/framework/test
Run Code Online (Sandbox Code Playgroud)

那时PHPUnit停止抱怨缺少SeleniumTestCase.php.

2)然后我收到了关于丢失文件的错误

PHPUnit/Runner/Version.php
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我在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');
Run Code Online (Sandbox Code Playgroud)

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