Based on pixelmatch-py image comparison library.
Expands assert_snapshot
fixture from pytest-playwright-snapshot library
- snapshots creation on the first run
- visual review of mismatches
- failing on
--update-snapshots
to make users manually review images - snapshot name is optional,
test_name[browser][os].png
is auto-generated by default - updated folder structure:
snapshots/file_name/test_name/test_name[browser][os].png
$ pip install pytest-playwright-visual
This plugin provides a assert_snapshot
fixture which is used to create snapshots and compare it.
Example:
def test_myapp(page, assert_snapshot):
page.goto("https://example.com")
assert_snapshot(page.screenshot())
Then, run pytest:
$ pytest
The first time you run pytest, snapshots will be created, and you will get the error:
Failed: --> New snapshot(s) created. Please review images
The next run, the snapshots comparison will take place.
To update snapshots, run:
$ pytest --update-snapshots
After updating, tests will fail and you will need to review images.
In case of a mismatch, snapshot_tests_failures
folder will be created with Actual_..
, Expected_..
and Diff_..
images generated.
assert_snapshot(page.screenshot(), threshold: float = 0.1, name='test_name[browser][os].png', fail_fast=False)
threshold
- sets the threshold for the comparison of the screenshots:0
to1
. Default is0.1
name
-.png
extensions only. Default istest_name[browser][os].png
(recommended)fail_fast
- IfTrue
, will fail after first different pixel.False
by default
Apache 2.0 LICENSE