The Codeception extension for automatically starting and stopping PhantomJS when running tests.
- Codeception 2.2.7
- PHP 5.4
Installation using Composer
$ composer require site5/phantoman
Be sure to enable the extension in codeception.yml
as shown in
configuration below.
It is highly recommended that you use the PhantomJS
Installer package which will
install PhantomJS locally to your project in vendor/bin
. Please follow the
installation
instructions
provided.
Phantoman uses vendor/bin/phantomjs
by default. If any other installation of
PhantomJS is used, please set the path as shown in the configuration below.
By default Phantoman will use the path vendor/bin/phantomjs
and port 4444
.
Enabling and configuration can be done in codeception.yml
or in your suite config file.
extensions:
enabled:
- Codeception\Extension\Phantoman
extensions:
enabled:
- Codeception\Extension\Phantoman
config:
Codeception\Extension\Phantoman:
path: '/usr/bin/phantomjs'
port: 4445
suites: ['acceptance']
extensions:
enabled:
- Codeception\Extension\Phantoman:
suites: ['acceptance']
env:
ci:
extensions:
enabled:
- Codeception\Extension\Phantoman:
suites: []
Options set in the Phantoman configuration are mapped to PhantomJS CLI options. The currently supported options are listed below.
path: {path}
- Full path to the PhantomJS binary.
- Default:
vendor/bin/phantomjs
port: {port}
- Webdriver port to start PhantomJS with.
- Default:
4444
debug: {true|false}
- Display debug output while Phantoman runs
- Default:
false
proxy: {address:port}
- Sets the proxy server.
proxyType: {[http|socks5|none]}
- Specifies the proxy type.
proxyAuth: {username:password}
- Provides authentication information for the proxy.
suites: {array|string}
- If omitted, PhantomJS is started for all suites.
- Specify an array of suites or a single suite name.
webSecurity: {true|false}
- Enables web security
ignoreSslErrors: {true|false}
- Ignores errors in the SSL validation.
- Defaults to
false
sslProtocol: {sslv3|sslv2|tlsv1|any}
- Sets the SSL protocol for secure connections
- Defaults to
sslv3
sslCertificatesPath: {path}
- Sets the location for custom CA certificates (if none set, uses system default).
remoteDebuggerPort: {port}
- Starts PhantomJS in a debug harness and listens on the specified port
remoteDebuggerAutorun: {true|false}
- Runs the script in the debugger immediately
- Defaults to
false
cookiesFile: {file path}
- Sets the file name to store the persistent cookies
diskCache: {true|false}
- Enabled disk cache
- Defaults to
false
maxDiskCacheSize: {number}
- Limit the size of the disk cache in KB
loadImages: {true|false}
- Loads all inlined images
- Defaults to
true
localStoragePath: {file path}
- The path to save LocalStorage content and WebSQL content
localStorageQuota: {number}
- Maximum size to allow for data in local storage in KB
localToRemoteUrlAccess: {true|false}
- Allows local content to access remote URL
- Defaults to
false
outputEncoding: {encoding}
- Sets the encoding for the terminal output
- Default is
utf8
scriptEncoding: {encoding}
- Sets the encoding used for starting the script
- Default is
utf8
silent: {true|false}
- Suppresses messages about starting and stopping the server
- Default is
false
webdriverLoglevel: {ERROR|WARN|INFO|DEBUG)}
- WebDriver Logging Level
- Defaults to
INFO
webdriverLogfile: {path}
- File where to write the WebDriver’s Log
Once installed and enabled, running your tests with php codecept run
will
automatically start the PhantomJS server and wait for it to be accessible before
proceeding with the tests.
Starting PhantomJS Server.
Waiting for the PhantomJS server to be reachable..
PhantomJS server now accessible.
Once the tests are complete, PhantomJS will be shut down.
Stopping PhantomJS Server.
This repository makes use of EditorConfig to ensure code style consistency across editors. Please be sure to either have an EditorConfig plugin installed for your desire editor or ensure that all indenting is 4 space indenting with linux line endings.