我安装了Netbeans 8.2(在Fedora 24上)和一台带有PHP7 + XDebug的Web服务器。 调试器适用于Netbeans,但当我执行Netbeans生成的测试时,我收到此消息:
"/usr/bin/php" "/usr/local/bin/phpunit" "--colors" "--log-json" "/tmp/nb-phpunit-log.json" "--coverage-clover" "/tmp/nb-phpunit-coverage.xml" "/home/karima/netbeans-dev-201608060002/php/phpunit/NetBeansSuite.php" "--" "--run=/home/karima/git/App/tests/selenium"
PHP Fatal error: Class 'WebDriverCapabilityType' not found in /home/karima/git/App/tests/selenium/htdocs/indexTest.php on line 22
PHPUnit 5.4.8 by Sebastian Bergmann and contributors.
Error: No code coverage driver is available
Done.
这里简单的测试:
class indexTest extends PHPUnit_Framework_TestCase {
/**
* @var \RemoteWebDriver
*/
protected $webDriver;
public function setUp() {
$capabilities = array(\WebDriverCapabilityType::BROWSER_NAME => 'firefox');
$this->webDriver = RemoteWebDriver::create('http://app/', $capabilities);
}
public function tearDown() {
$this->webDriver->close();
}
protected $url = 'http://www.netbeans.org/';
public function testSimple() {
$this->webDriver->get($this->url);
// checking that page title contains word 'Test'
$this->assertContains('Test', $this->webDriver->getTitle());
}
}
如何在linux(netora 24)的netbeans中为远程服务器安装覆盖驱动程序? (和Selenium的框架?)
或者你有一个好的文档(一步一步)?
更新1:文件/tmp/nb-phpunit-coverage.xml为空...我创建了bug report.
由于
答案 0 :(得分:0)
我找到了。
有3个问题。
安装Netbeans的基本工具
首先,Netbeans没有为其接口安装必要的工具。所以,你必须手动安装PHPUnit和其他工具(用于检查/格式等)。这是我最好的方法:
我安装了作曲家。之后,我在我的开发环境中安装了Netbeans的工具。 :
sudo dnf install composer
# necessary tools for Netbeans
composer global require friendsofphp/php-cs-fixer
composer global require phpmd/phpmd
composer global require phpunit/phpunit
...
有时Netbeans会检测这些工具。当它无法找到好的路径时,在Netbeans的选项中,你必须精确地确定良好的路径。
Composer在"〜/ .config / composer / vendor /"中推送这些工具。 之后,PHPunit的问题就消失了。
其次,Selenium的问题。
在这里,我的目标是执行Netbeans生成的第一个测试。
您需要按照以下步骤操作:
第1步:安装webdriver
# driver for selenium/php
composer global require facebook/webdriver
第2步:更改Netbeans中的测试代码。您需要替换包含路径。
set_include_path('/home/karima/.config/composer');
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
require_once('vendor/autoload.php');
class MyFirstTest extends PHPUnit_Framework_TestCase {
/**
* @var \RemoteWebDriver
*/
protected $webDriver;
public function setUp() {
$capabilities = DesiredCapabilities::firefox();
$this->webDriver = RemoteWebDriver::create('http://localhost:4444/wd/hub', $capabilities);
}
public function tearDown() {
$this->webDriver->close();
}
protected $url = 'http://www.netbeans.org/';
public function testSimple() {
$this->webDriver->get($this->url);
// checking that page title contains word 'NetBeans'
$this->assertContains('NetBeans', $this->webDriver->getTitle());
}
}
第3步:下载并解压缩上一版geckodriver
步骤4:将geckodriver移动到系统的路径中
mv geckodriver /usr/bin/.
第5步:下载Selenium Standalone Server的JAR(我使用3.0.0-beta2测试过)
步骤6:启动selenium服务器:
java -jar /home/karima/Téléchargements/selenium-server-standalone-3.0.0-beta2.jar
步骤7:您现在可以在Netbeans中运行测试而不会出现错误,但是......
没有可用的代码覆盖率驱动程序......
我再次搜索......
我希望它会帮助别人。