Доброго времени суток! Помогите решить следующую проблему:
Имеется тестовый класс с одной аннотацией @Test (Junit) и нескольких аннотаций в ней @Step (Allure 2).
После запуска команды в Maven mvn clean test тест запускается, но выполняется только аннотация @Test (@Step игнорится), после чего тест завершается (успешно).
Все зависимости от POM встали нормально, IDE (IntelliJ IDEA) все аннотации распознает.
POM:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jlr.app</groupId>
<artifactId>jlr-test</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>jlr-test</name>
<url>http://maven.apache.org</url>
<properties>
<aspectj.version>1.8.9</aspectj.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.5.3</version>
</dependency>
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-junit4</artifactId>
<version>2.0-BETA18</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.21</version>
</dependency>
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>1.4.9</version>
</dependency>
<dependency>
<groupId>com.tngtech.java</groupId>
<artifactId>junit-dataprovider</artifactId>
<version>1.10.0</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<testFailureIgnore>false</testFailureIgnore>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
<properties>
<property>
<name>listener</name>
<value>io.qameta.allure.junit4.AllureJunit4</value>
</property>
</properties>
<systemProperties>
<property>
<name>allure.results.directory</name>
<value>${project.build.directory}/allure-results</value>
</property>
</systemProperties>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-maven</artifactId>
<version>2.8</version>
</plugin>
</plugins>
</build>
</project>
"
Код:
package com.jlr.app;
import io.qameta.allure.Step;
import org.junit.*;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.junit.runners.Suite;
import org.junit.runner.RunWith;
public class CreateProfileTest {
static String baseUrl;
static WebDriver driver;
@BeforeClass
public static void testSetup() {
driver = new ChromeDriver();
baseUrl = "http://127.0.0.1:8000";
}
@AfterClass
public static void testShutDown() {
driver.close();
}
@Test
// Открытие браузера
public void createOneProfile() {
driver.get(baseUrl + "/SIMULATOR/index.html");
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); // объявление неявного оижадия
driver.manage().timeouts().setScriptTimeout(10, TimeUnit.SECONDS); // объявление неявного оижадия для скриптов
}
@Step
// Переход во фрейм, где есть tile Login
public void switchToFrame01() {
driver.switchTo().frame(driver.findElement(By.id("550e8400-e29b-41d4-a716-446655440001")));
}
@Step
// Нажатие на login
public void clickOnTileLogin() {
WebElement tile = (new WebDriverWait(driver, 10)) // Объявляем элемент tile и ждем его появления на странице
.until(ExpectedConditions.presenceOfElementLocated(By.xpath(".//*[@id='notifDiv_550e8400-e29b-41d4-a716-446655440003']/../..")));
tile.click(); // нажимаем на элемент tile после обнаружения
}
// Переход во фрейм, где есть кнопка Next
@Step
public void switchToFrame03() {
driver.switchTo().defaultContent();
driver.switchTo().frame(driver.findElement(By.id("550e8400-e29b-41d4-a716-446655440003")));
wait(1); // Ждем когда фрейм переключится
}
…
и т.д.
В итоге, выполняется только часть кода связанная с @Test. Методы с аннотацией @Step игнорятся.