远程XDebug + Nebeans没有代码覆盖率驱动程序

时间:2016-08-08 18:58:02

标签: selenium netbeans code-coverage netbeans-8 php-7

我安装了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.

由于

1 个答案:

答案 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中运行测试而不会出现错误,但是......

没有可用的代码覆盖率驱动程序......

我再次搜索......

我希望它会帮助别人。