mvadzim / visualception
Visual regression tests for Codeception
2.0.3
2019-12-27 07:34 UTC
Requires
- php: >=5.4.0
- ext-imagick: *
Requires (Dev)
- codeception/codeception: ^2.3|^3.0|^4.0
README
This is fork of visual regression tests for Codeception.
Install
composer require mvadzim/visualception:dev-master
Sample config:
modules: enabled: - WebDriver: url: http://localhost.com browser: firefox - VisualCeption: maximumDeviation: 5 # deviation in percent saveCurrentImageIfFailure: true # if true, VisualCeption saves the current fullScreenShot: resize # fullpage screenshot (resize/scroll/false) referenceImageDir: "/home/qa/img_storage/[browser]/" # "[browser]" replaced to "firefox" currentImageDir: "visualception/current/[browser]/" # tests/_output/visualception/current/firefox/ report: true # tests/_output/vcresult.html referenceImageDeleteLink: "http://mytestserver.example.com/delete_reference_image.php?file=[file]&browser=[browser]&environment=dev"
Note
Форк делался для себя и под свои запросы, из-за этого не нужно надеятся на его стабильность и безбажность даже для базовых вариантов использования.
Изменения:
- Новые пути для сохраниения текущих и эталонных скриншотов, "[browser]" в пути автоматически заменяется на имя браузера
- Новые методы seeVisualChangesInCurrentPage и dontSeeVisualChangesInCurrentPage которым не нужно передавать идентификатор (им выступает урл сейчас открытой страницы)
- fullScreenShot: 'resize' - изменяет размер окна браузера на высоту страницы (нужно запускать на виртуальном экране большой высоты)
- Новый шаблон для отчетов
- Возможность удалять элементы со страницы (display:none)
- В отчете не затираются результаты предыдущих запусков
- Добавлена ссылка на удаление эталонных скриншотов
Простой пример
class VisualCest { /** * @env firefox * @env chrome * * @example(url="https://time.is/ru/Kyiv", wantTo="Страница точного времени в Киеве, этот тест будет постоянно падать") * @example(url="https://github.com/pricing", wantTo="Страница с ценами на гитхаб, этот тест будет падать редко") * @example(url="https://time.is/uk/Kyiv", wantTo="Сторінка точного часу в Києві, цей тест буде постійно падати") */ public function visualTest(\AcceptanceTester $I, \Codeception\Example $example) { $I->wantTo('Визуальная проверка важных страниц'); $I->amOnUrl($example['url']); $I->dontSeeVisualChangesInCurrentPage(['div#twd'], ['iframe']); // div#twd set style "visibility: hidden;" iframe set "display: none;" } }