GsAutomationJUnitResolver

public class GsAutomationJUnitResolver extends GsAutomationJUnitInterceptor implements ParameterResolver, BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback

Added in version 1.1.1.

Added in version 1.2.1: Добавлена поддержка скриншотов при возникновении исключений во время выполнения тестов и callback-методов.

Интеграция GS-Automation и jUnit 5 путем расширения реализацией колбеков и резолвера.

See also

BeforeAllCallback
AfterAllCallback
ParameterResolver
ExtendWith

Constructors

GsAutomationJUnitResolver

public GsAutomationJUnitResolver()

Methods

afterAll

public void afterAll(ExtensionContext context)

Метод afterAll выполнятся для объекта любого тестового класса, расширенного GsAutomationJUnitResolver, после всех тестов.

Для @Nested-классов — no-op: см. симметричное пояснение в beforeAll(org.junit.jupiter.api.extension.ExtensionContext). Без этой защиты testClassEpilogue() (logout + закрытие клиента) срабатывал бы уже при завершении @Nested-поддерева, а не всего внешнего класса — преждевременно закрывая сессию, которой внешний класс ещё не закончил пользоваться (его собственный @AfterAll, идущий позже, падает на уже мёртвой сессии).

See also

ExtendWith

afterEach

public void afterEach(ExtensionContext context)

Метод afterEach выполнятся для объекта любого тестового класса, расширенного GsAutomationJUnitResolver, после каждого теста.

See also

ExtendWith

applyAction

protected final void applyAction(ExtensionContext context, AbstractTestEnvironment.ActionConsumer<AbstractTestEnvironment> actionConsumer)

beforeAll

public void beforeAll(ExtensionContext context)

Метод beforeAll выполнятся для объекта любого тестового класса, расширенного GsAutomationJUnitResolver, перед всеми тестами.

Для @Nested-классов — no-op: расширение наследуется от внешнего класса, и JUnit5 вызывает этот callback ЕЩЁ РАЗ при старте поддерева @Nested-класса, до его собственного @BeforeAll. Поскольку GsAutomationJUnitResolver.Environment лежит в корневом (общем на весь JVM-прогон) хранилище, полноценный testClassPrelude() здесь пересоздал бы клиент и залогинился заново — вместо переиспользования уже открытой сессии внешнего класса. Настоящая инициализация выполняется только для самого внешнего (не @Nested) класса.

See also

ExtendWith

beforeEach

public void beforeEach(ExtensionContext context)

Метод beforeEach выполнятся для объекта любого тестового класса, расширенного GsAutomationJUnitResolver, перед каждым тестом.

See also

ExtendWith

createScreenshot

protected void createScreenshot(ExtensionContext context)

findServerErrorStackTrace

protected String findServerErrorStackTrace(ExtensionContext context)

resolveParameter

public Object resolveParameter(ParameterContext parameterContext, ExtensionContext context)

supportsParameter

public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext)