Home | 簡體中文 | 繁體中文 | 雜文 | 打賞(Donations) | Github | OSChina 博客 | 雲社區 | 雲棲社區 | Facebook | Linkedin | 知乎專欄 | 視頻教程 | About

6.7. PHP

6.7.1. 安裝 PHPUNIT 與 Selenium

創建 composer.json 檔案

vim composer.json 
{
    "require-dev": {
        "phpunit/phpunit": "4.6.*",
	"phpunit/php-invoker": "*",
	"phpunit/dbunit": ">=1.2",
	"phpunit/phpunit-selenium": ">=1.2"
    }
}
		

安裝phpunit

# php composer.phar install
Loading composer repositories with package information
Installing dependencies (including require-dev)
  - Installing sebastian/global-state (1.0.0)
    Downloading: 100%         

  - Installing sebastian/recursion-context (1.0.0)
    Downloading: 100%         

  - Installing phpunit/php-timer (1.0.5)
    Downloading: 100%         

  - Installing phpunit/php-invoker (1.1.3)
    Downloading: 100%         

  - Installing symfony/yaml (v2.6.7)
    Downloading: 100%         

  - Installing sebastian/version (1.0.5)
    Downloading: 100%         

  - Installing sebastian/exporter (1.2.0)
    Downloading: 100%         

  - Installing sebastian/environment (1.2.2)
    Downloading: 100%         

  - Installing sebastian/diff (1.3.0)
    Downloading: 100%         

  - Installing sebastian/comparator (1.1.1)
    Downloading: 100%         

  - Installing doctrine/instantiator (1.0.4)
    Downloading: 100%         

  - Installing phpdocumentor/reflection-docblock (2.0.4)
    Downloading: 100%         

  - Installing phpspec/prophecy (v1.4.1)
    Downloading: 100%         

  - Installing phpunit/php-text-template (1.2.0)
    Downloading: 100%         

  - Installing phpunit/phpunit-mock-objects (2.3.1)
    Downloading: 100%         

  - Installing phpunit/php-token-stream (1.4.1)
    Downloading: 100%         

  - Installing phpunit/php-file-iterator (1.4.0)
    Downloading: 100%         

  - Installing phpunit/php-code-coverage (2.0.16)
    Downloading: 100%         

  - Installing phpunit/phpunit (4.6.6)
    Downloading: 100%         

  - Installing phpunit/dbunit (1.3.2)
    Downloading: 100%         

  - Installing phpunit/phpunit-selenium (1.4.2)
    Downloading: 100%         

sebastian/global-state suggests installing ext-uopz (*)
phpdocumentor/reflection-docblock suggests installing dflydev/markdown (~1.0)
phpdocumentor/reflection-docblock suggests installing erusev/parsedown (~1.0)
phpunit/php-code-coverage suggests installing ext-xdebug (>=2.2.1)
Writing lock file
Generating autoload files	
		

6.7.2. Example

例 6.6. Phpunit Selenium

			
<?php
require_once 'PHPUnit/Extensions/SeleniumTestCase.php';

class WebTest extends PHPUnit_Extensions_SeleniumTestCase
{
    public static $browsers = array(
      array(
        'name'    => 'Firefox on Linux',
        'browser' => '*firefox',
        'host'    => '172.30.5.73',
        'port'    => 4444,
        'timeout' => 30000,
      ),
/*
      array(
        'name'    => 'Safari on MacOS X',
        'browser' => '*safari',
        'host'    => 'my.macosx.box',
        'port'    => 4444,
        'timeout' => 30000,
      ),
      array(
        'name'    => 'Safari on Windows XP',
        'browser' => '*custom C:\Program Files\Safari\Safari.exe -url',
        'host'    => 'my.windowsxp.box',
        'port'    => 4444,
        'timeout' => 30000,
      ),
      array(
        'name'    => 'Internet Explorer on Windows XP',
        'browser' => '*iexplore',
        'host'    => 'my.windowsxp.box',
        'port'    => 4444,
        'timeout' => 30000,
      )
*/
    );

    protected function setUp()
    {
        $this->setBrowserUrl('http://www.google.com/');
    }

    public function testTitle()
    {
        $this->open('http://www.google.com/');
        $this->assertTitle('Google');
    }
    public function tearDown()
    {
        $this->close();
    }
}
?>		
			
			

# vendor/bin/phpunit test.php