From b8916f620179d798012b3a304164d6f30d5c3c52 Mon Sep 17 00:00:00 2001 From: Vladimir Valekzhanin Date: Fri, 16 Oct 2026 14:48:53 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=BB=D0=BE=D0=BA=D0=B0=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D1=8B=D0=B9=20=D1=81=D0=BA=D0=B5=D0=BB=D0=B5=D1=82=20All?= =?UTF-8?q?ure-=D0=BE=D1=82=D1=87=D1=91=D1=82=D0=B0=20(#60)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Адаптер allure-junit5 через SPI без изменения headless-конфигурации surefire и excludedGroups; генератор HTML штатным плагином allure-maven вручную. Образцы: EmailValidatorTest (role:none) и MockFlowTest (role:user) с Epic по GLOSSARY.md, Feature по docs/pages.md и DisplayName на русском. aspectjweaver осознанно не подключён: шаги вне скоупа скелета. --- .gitignore | 2 ++ pom.xml | 24 +++++++++++++++++++ .../ui/MockFlowTest.java | 9 +++++++ .../validation/EmailValidatorTest.java | 9 +++++++ src/test/resources/allure.properties | 1 + 5 files changed, 45 insertions(+) create mode 100644 src/test/resources/allure.properties diff --git a/.gitignore b/.gitignore index 6a56254..a46b433 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,8 @@ hs_err_pid* replay_pid* target/ +# Локальный дистрибутив Allure CLI, скачиваемый allure-maven при генерации отчёта (тикет #60) +.allure/ pom.xml.tag pom.xml.releaseBackup pom.xml.versionsBackup diff --git a/pom.xml b/pom.xml index 9d25352..f1a664a 100644 --- a/pom.xml +++ b/pom.xml @@ -20,6 +20,8 @@ ${encoding} 1.6.3 0.2.0 + 2.35.4 + 2.17.0 integration @@ -119,6 +121,12 @@ 5.23.0 test + + io.qameta.allure + allure-junit5 + ${allure.version} + test + @@ -176,6 +184,22 @@ + + + io.qameta.allure + allure-maven + ${allure-maven.version} + + ${project.build.directory}/allure-results + ${project.build.directory}/allure-report + + org.apache.maven.plugins maven-compiler-plugin diff --git a/src/test/java/com/DesktopApplicationClientJava/ui/MockFlowTest.java b/src/test/java/com/DesktopApplicationClientJava/ui/MockFlowTest.java index 03c582f..cc26468 100644 --- a/src/test/java/com/DesktopApplicationClientJava/ui/MockFlowTest.java +++ b/src/test/java/com/DesktopApplicationClientJava/ui/MockFlowTest.java @@ -9,6 +9,8 @@ import com.DesktopApplicationClientJava.services.ServiceRegistry; import com.DesktopApplicationClientJava.session.Session; import com.DesktopApplicationClientJava.utils.ControllerWiring; +import io.qameta.allure.Epic; +import io.qameta.allure.Feature; import java.util.UUID; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; @@ -17,6 +19,8 @@ import javafx.scene.control.TableView; import javafx.stage.Stage; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.testfx.api.FxToolkit; @@ -24,6 +28,10 @@ * Mock-backed UI flow: real pages wired to real in-memory mock services (no Mockito on services, no * backend). Proves that MOCK_DATA mode renders actual data. */ +@Epic("Ресурс") +@Feature("Просмотр метаданных ресурса") +@Tag("role:user") +@DisplayName("Просмотр ресурса на моках") class MockFlowTest extends FxTestBase { private static final UUID SEEDED_RESOURCE_ID = UUID.fromString("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"); @@ -75,6 +83,7 @@ void mockLoginPutsUserIntoSession() { @Test @SuppressWarnings("unchecked") + @DisplayName("Страница показывает мок-ресурс из памяти") void detailsPageRendersSeededMockResource() { robot.interact( () -> { diff --git a/src/test/java/com/DesktopApplicationClientJava/validation/EmailValidatorTest.java b/src/test/java/com/DesktopApplicationClientJava/validation/EmailValidatorTest.java index 1993ad4..017b0ac 100644 --- a/src/test/java/com/DesktopApplicationClientJava/validation/EmailValidatorTest.java +++ b/src/test/java/com/DesktopApplicationClientJava/validation/EmailValidatorTest.java @@ -4,8 +4,16 @@ import static org.junit.jupiter.api.Assertions.assertNull; import com.DesktopApplicationClientJava.validation.utils.ErrorMessages; +import io.qameta.allure.Epic; +import io.qameta.allure.Feature; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +@Epic("Проверка ввода") +@Feature("Вход (email + пароль)") +@Tag("role:none") +@DisplayName("Проверка адреса почты") public class EmailValidatorTest { private static final String FIELD_NAME = EmailValidator.FIELD_NAME; @@ -40,6 +48,7 @@ void emailWithoutAtIsRejected() { } @Test + @DisplayName("Корректный адрес принимается") void validEmailIsAccepted() { assertNull(EmailValidator.validate("test@example.com")); } diff --git a/src/test/resources/allure.properties b/src/test/resources/allure.properties new file mode 100644 index 0000000..80b02dd --- /dev/null +++ b/src/test/resources/allure.properties @@ -0,0 +1 @@ +allure.results.directory=target/allure-results