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