drevops / behat-screenshot
Behat extension and step definitions to create HTML and image screenshots on demand or when tests fail
Fund package maintenance!
Patreon
Installs: 230 157
Dependents: 8
Suggesters: 0
Security: 0
Stars: 18
Watchers: 4
Forks: 6
Open Issues: 8
Requires
- behat/behat: ^3.3.1
- behat/mink-selenium2-driver: ^1.3
- symfony/finder: ^3.2|^4.0|^5.0|^6.0
Requires (Dev)
README
Behat extension and step definitions to create HTML and image screenshots on demand or when tests fail.
Features
- Create a screenshot using
I save screenshot
orsave screenshot
step definition. - Create a screenshot when test fails.
- Screenshot is saved as HTML page for Goutte driver.
- Screenshot is saved as both HTML and PNG image for Selenium driver.
- Screenshot directory can be specified through environment variable
BEHAT_SCREENSHOT_DIR
(useful for CI systems to override values inbehat.yml
). - Screenshots can be purged after every test run by setting
purge: true
(useful during test debugging) or setting environment variableBEHAT_SCREENSHOT_PURGE=1
.
Installation
composer require --dev drevops/behat-screenshot
Usage
Example behat.yml
with default parameters:
default: suites: default: contexts: - DrevOps\BehatScreenshotExtension\Context\ScreenshotContext - FeatureContext extensions: DrevOps\BehatScreenshotExtension: ~
or with parameters:
default: suites: default: contexts: - DrevOps\BehatScreenshotExtension\Context\ScreenshotContext - FeatureContext extensions: DrevOps\BehatScreenshotExtension: dir: '%paths.base%/screenshots' fail: true fail_prefix: 'failed_' purge: false
In your feature:
Given I am on "http://google.com"
Then I save screenshot
You may optionally specify size of browser window in the screenshot step:
Then I save 1440 x 900 screenshot
And I save 800 x 600 screenshot
Options
-
dir:
path/to/dir
(default%paths.base%/screenshots
)Path to directory to save screenshots. Directory structure will be created if the directory does not exist.
-
fail:
true
orfalse
(defaulttrue
)Capture screenshots for failed tests.
-
fail_prefix:
(defaultfailed_
)Prefix failed screenshots with
fail_
string. Useful to distinguish failed and intended screenshots. -
purge:
true
orfalse
(defaultfalse
)Remove all files from the screenshots directory on each test run. Useful during debugging of tests. Can be overridden with
BEHAT_SCREENSHOT_PURGE
environment variable set to1
ortrue
.
Maintenance
Local development setup
- Install Docker.
- If using M1:
cp default.docker-compose.override.yml docker-compose.override.yml
- Start environment:
docker-compose up -d --build
. - Install dependencies:
docker-compose exec phpserver composer install --ansi --no-suggest
.
Lint code
docker-compose exec phpserver vendor/bin/phpcs
Run tests
docker-compose exec phpserver vendor/bin/behat
Enable Xdebug
XDEBUG_ENABLE=true docker-compose up -d phpserver
To disable, run
docker-compose up -d phpserver