phpunit selenium2重复测试不起作用
Posted
技术标签:
【中文标题】phpunit selenium2重复测试不起作用【英文标题】:phpunit selenium2 repeat test not working 【发布时间】:2018-05-12 19:49:12 【问题描述】:我正在尝试使用 selenium2 运行 phpunit 来测试我的 php 代码。
php version : 5.6
laravel version : 5.2
phpunit vesrion : PHPUnit 3.7.28 by Sebastian Bergmann.
启动 selenium 服务器的初始命令:
java -Dwebdriver.chrome.driver=/usr/bin/chromedriver -jar ~/Downloads/selenium-server-standalone-3.4.0.jar
Mytest.php
class Mytest extends PHPUnit_Extensions_Selenium2TestCase
public function setUp()
$this->setHost('localhost');
$this->setPort(4444);
$this->setBrowserUrl('http://www.example.com');
$this->setBrowser('chrome'); // firefox
//parent::setUp();
public function tearDown()
$this->stop();
//parent::tearDown();
public function testcheckhere()
$this->url("http://www.google.com");
sleep(5);
当我使用以下命令通过命令行运行上述代码时:
vendor/bin/phpunit --filter testcheckhere --verbose --repeat 2 --log-junit textexe.xml tests/selenium/MyTest.php
我收到以下错误:
PHPUnit 5.7.9 by Sebastian Bergmann and contributors.
Runtime: PHP 5.6.31-2+ubuntu14.04.1+deb.sury.org+1
Configuration: /var/www/html/CRM/phpunit.xml
.E 2 / 2 (100%)
Time: 9.04 seconds, Memory: 6.25MB
There was 1 error:
1) Mytest::testcheckhere
PHPUnit_Extensions_Selenium2TestCase_WebDriverException: Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
System info: host: 'lp-0500', ip: '127.0.0.1', os.name: 'Linux', os.arch: 'amd64', os.version: '3.13.0-43-generic', java.version: '1.8.0_151'
Driver info: driver.version: unknown
/var/www/html/mycode/vendor/phpunit/phpunit-selenium/PHPUnit/Extensions/Selenium2TestCase/Driver.php:165
/var/www/html/mycode/vendor/phpunit/phpunit-selenium/PHPUnit/Extensions/Selenium2TestCase/Driver.php:175
/var/www/html/mycode/vendor/phpunit/phpunit-selenium/PHPUnit/Extensions/Selenium2TestCase/CommandsHolder.php:100
/var/www/html/mycode/vendor/phpunit/phpunit-selenium/PHPUnit/Extensions/Selenium2TestCase.php:394
/var/www/html/mycode/tests/selenium/MyTest.php:29
/var/www/html/mycode/tests/selenium/MyTest.php:29
/var/www/html/mycode/vendor/phpunit/phpunit-selenium/PHPUnit/Extensions/Selenium2TestCase.php:348
/var/www/html/mycode/vendor/phpunit/phpunit-selenium/PHPUnit/Extensions/Selenium2TestCase.php:314
ERRORS!
Tests: 2, Assertions: 0, Errors: 1.
此外,在测试运行时,chrome 浏览器在第一次测试期间仅打开一次,之后不再尝试再次打开。
【问题讨论】:
看来 selenium 服务器不知道在哪里可以找到 webdriver。 如果你将 chromedriver 二进制文件和 selenium server jar 放在同一个目录下,你不必指定 Dwebdriver.chrome.driver 参数。也可以尝试$this->setBrowser('*chrome')
与 asterix 并在 setUp 方法中设置您的测试基础 URL $this->setBrowserUrl
然后在测试中只需调用 $this->url('/');
phpunit 将自动调用所有以 test 所以 --filter 参数是不必要的。这些是我的建议,但我在这件事上是新手。祝你好运。
【参考方案1】:
php 版本:5.6 laravel 版本:5.2 phpunit vesrion:Sebastian Bergmann 的 PHPUnit 3.7.28。
在 Xampp 文件夹中更新您的 PHPUnit 版本,例如:
1- 在此处下载最新版本的 PHPUnit:https://phpunit.de/index.html 2- 在“C:\xampp\php”中复制“phpunit.phar”。 3- 在文件:“phpunit.bat.bat”中,更新以下行:“%PHPBIN%”“C:\xampp\php\phpunit”%* 为:“%PHPBIN%”“C:\xampp\php \phpunit.phar" %*
您有版本兼容性问题,一旦您的 php 版本和 phpunit 版本相互兼容,那么您的应用程序将毫无问题地运行。下载 phpunit.phar 文件版本 5.7.26,因为它将与您的 PHP 版本兼容
同时删除你的函数:
公共函数 tearDown() $this->stop();
//parent::tearDown();
【讨论】:
这与硒测试有何关系? 您正在使用的 PHPUnit-Selenium 库。您必须设置所有版本的兼容性才能解决错误以上是关于phpunit selenium2重复测试不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5:模型上的fresh()在PHPUnit中不起作用
尝试使用 phpunit 模拟控制器内部的 http 客户端,但它不起作用