API testplane
С помощью API testplane вы можете использовать её в своих скриптах или сборочных инструментах.
Для этого вы должны подключить модуль testplane и создать её инстанс:
const Testplane = require("testplane");
const config = require("./testplane.conf.js");
const testplane = new Testplane(config);
Далее вам будут доступны следующие параметры и методы:
| Имя | Тип | Описание |
| config | Object или String | Объект с конфигом testplane или путь к конфигурационному файлу, относительно рабочей папки. |
| events | Object | События testplane, на которые можно подписаться. |
| errors | Object | Ошибки, которые может возвращать testplane. |
| intercept | Function | Функция, с помощью которой можно подписаться на перехват событий testplane. |
| init | Method | Инициализирует инстанс testplane, загружает все плагины и т. д. |
| run | Method | Запускает прогон тестов, расположенных по указанным путям. |
| addTestToRun | Method | Добавляет тест к текущему запуску. |
| readTests | Method | Возвращает объект типа TestCollection. |
| isFailed | Method | Возвращает true или false в зависимости от того, была ли ошибка или падение теста при запуске тестов. |
| isWorker | Method | Возвращает true, если метод был вызван из воркера testplane. |
| halt | Method | Аварийно завершает прогон тестов в случае критической ошибки. |
config
Объект с конфигом testplane или путь к конфигурационному файлу, относительно рабочей папки: process.cwd().
events
События testplane, на которые можно подписаться.
Пример использования объекта testplane.events в плагине testplane:
testplane.on(testplane.events.INIT, async () => {
console.info("Выполняется обработка события INIT...");
});
errors
Testplane может возвращать ошибки следующего типа:
- CoreError
- CancelledError
- ClientBridgeError
- HeightViewportError
- OffsetViewportError
- AssertViewError
- ImageDiffError
- NoRefImageError
CoreError
Ошибка CoreError возвращается в случае неудачной калибровки пустой страницы (about:blank) в браузере.
Ошибка при этом содержит следующее сообщение:
Could not calibrate. This could be due to calibration page has failed to open properly
CancelledError
Ошибка CancelledEror возвращается в случае аварийного завершения по команде halt.
Ошибка при этом содержит следующее сообщение:
Browser request was cancelled
ClientBridgeError
Ошибка ClientBridgeError возвращается в случае неудачной инъекции кода JavaScript на стороне клиента (браузера). Testplane осущест вляет инъекцию кода с помощью команды execute WebDriverIO.
Ошибка при этом содержит следующее сообщение:
Unable to inject client script
HeightViewportError
Ошибка HeightViewportError возвращается при попытке снять скриншот для области, чья нижняя граница не влезает в область вьюпорта.
Ошибка при этом содержит следующее сообщение:
Can not capture the specified region of the viewport.
The region bottom bound is outside of the viewport height.
Alternatively, you can test such cases by setting "true" value to option "compositeImage" in the config file
or setting "false" to "compositeImage" and "true" to option "allowViewportOverflow" in "assertView" command.
Element position: <cropArea.left>, <cropArea.top>; size: <cropArea.width>, <cropArea.height>.
Viewport size: <viewport.width>, <viewport.height>.
При этом сообщение подсказывает пользователю testplane, какие настройки нужно установить в конфиге testplane, чтобы иметь возможность снять скриншот для указанной области.
OffsetViewportError
Ошибка OffsetViewportError возвращается при попытке снять скриншот для области, чьи границы слева, справа или наверху выходят за пределы вьюпорта.
Ошибка при этом содержит следующее сообщение:
Can not capture the specified region of the viewport.
Position of the region is outside of the viewport left, top or right bounds.
Check that elements:
- does not overflow the document
- does not overflow browser viewport
Alternatively, you can increase browser window size using
"setWindowSize" or "windowSize" option in the config file.
But if viewport overflow is expected behavior then you can use
option "allowViewportOverflow" in "assertView" command.
При этом сообщение подсказывает пользователю testplane, какие настройки нужно устан овить в конфиге testplane, чтобы иметь возможность снять скриншот для указанной области.
AssertViewError
Ошибка AssertViewError возвращается при неудачной попытке снять скриншот.
Ошибка при этом может содержать одно из следующих сообщений, в зависимости от причины падения:
duplicate name for "<state>" state
element ("<selector>") still not existing after <this.options.waitforTimeout> ms
element ("<this.selector>") still not existing after <this.options.waitforTimeout> ms
ImageDiffError
Ошибка ImageDiffError возвращается из команды assertView, если при снятии и сравнении скриншота с эталонным скриншотом обнаруживается дифф (разница в изображениях).
Ошибка при этом содержит следующее сообщение:
images are different for "<stateName>" state