t.me/atinfo_chat Telegram группа по автоматизации тестирования

В allure отчетах не отображается @Steps и @Attachments

Теги: #<Tag:0x00007f748bdf8160> #<Tag:0x00007f748bdf8020> #<Tag:0x00007f748bdffed8> #<Tag:0x00007f748bdffde8> #<Tag:0x00007f748bdffcf8> #<Tag:0x00007f748bdffb68>

Причем проблема именно при запуске тестов в Jenkins (отчет формируется но Степов и атачей), а локально все работает
Вот пом файл:

<?xml version="1.0" encoding="UTF-8"?> 4.0.0
<groupId>Automation-qa</groupId>
<artifactId>Automation-qa</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>


<properties>
    <buildDirectory>${project.basedir}/target</buildDirectory>
    <allure.results.directory>${buildDirectory}/allure-results</allure.results.directory>
    <resultsPatternAllure>**/allure-results</resultsPatternAllure>
    <allure.version>1.5.4</allure.version>
    <aspectj.version>1.9.5</aspectj.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>3.0.0-M4</version>
            <configuration>
                <argLine>
                    -javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar
                </argLine>
                <forkCount>0</forkCount>
                <suiteXmlFiles>
                    <suiteXmlFile>testng.xml</suiteXmlFile>
                </suiteXmlFiles>
                <systemProperties>
                    <property>
                        <name>allure.results.directory</name>
                        <value>${allure.results.directory}</value>
                    </property>
                </systemProperties>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.aspectj</groupId>
                    <artifactId>aspectjweaver</artifactId>
                    <version>${aspectj.version}</version>
                </dependency>
            </dependencies>
        </plugin>
        <plugin>
            <groupId>ru.yandex.qatools.allure</groupId>
            <artifactId>allure-maven-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <resultsDirectory>allure-results</resultsDirectory>
                <reportDirectory>allure-report</reportDirectory>
            </configuration>
        </plugin>
    </plugins>
</build>

<reporting>
    <excludeDefaults>true</excludeDefaults>
    <plugins>
        <plugin>
            <groupId>ru.yandex.qatools.allure</groupId>
            <artifactId>allure-maven-plugin</artifactId>
            <version>2.6</version>
        </plugin>
    </plugins>
</reporting>


<dependencies>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>7.1.0</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.8.11.6</version>
    </dependency>

    <dependency>
        <groupId>com.sun.xml.ws</groupId>
        <artifactId>jaxws-ri</artifactId>
        <version>2.3.0</version>
        <type>pom</type>
    </dependency>

    <dependency>
        <groupId>com.jayway.restassured</groupId>
        <artifactId>rest-assured</artifactId>
        <version>2.9.0</version>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>io.rest-assured</groupId>
        <artifactId>rest-assured</artifactId>
        <version>4.3.0</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20180130</version>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.141.59</version>
    </dependency>

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.13.3</version>
    </dependency>

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.13.3</version>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.28</version>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.7.18</version>
    </dependency>

    <dependency>
        <groupId>ru.yandex.qatools.allure</groupId>
        <artifactId>allure-testng-adaptor</artifactId>
        <version>${allure.version}</version>
        <exclusions>
            <exclusion>
                <artifactId>junit</artifactId>
                <groupId>junit</groupId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.19</version>
    </dependency>

    <!-- Yandex AShot -->
    <dependency>
        <groupId>ru.yandex.qatools.ashot</groupId>
        <artifactId>ashot</artifactId>
        <version>1.5.2</version>
    </dependency>


    <dependency>
        <groupId>io.github.bonigarcia</groupId>
        <artifactId>webdrivermanager</artifactId>
        <version>3.6.2</version>
    </dependency>
</dependencies>

На одном форуме нашел что проблема может быть связана с forkCount = 0, но тут возникает совсем другая проблема, почему то тесты не работаю без forkCount = 0, происходит запуск и все, тишина
Пример использования аннотаций:
public class TestListener implements ITestListener {

@Attachment(value = "Page screenshot", type = "image/png")
private byte[] makeScreenshot(ITestResult iTestResult) {
    WebDriver driver = ((BaseTest) iTestResult.getInstance()).objectManager.getDriver().getWebDriver();
    TakesScreenshot scr = ((TakesScreenshot) driver);
    return scr.getScreenshotAs(OutputType.BYTES);
}

@Override
public void onTestFailure(ITestResult iTestResult) {
    makeScreenshot(iTestResult);
    Logs logs = ((BaseTest) iTestResult.getInstance()).objectManager.getLogs();
    logs.infoMsg("TEST FAILURE");
}

}

Реализовываю через листенер, каждый тест заворачиваю этим лисенером
Из того что я понял что реализация правильная, потому что локально все работает, и возможно проблема в pom файле

Наверное, потому что для скриншота нужно передавать имя файла

@Attachment(type = "image/png")
    public static byte[] AttachScreen(File screenshot) {
        try {
            return screenshot == null ? null : Files.toByteArray(screenshot);
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }

    private static AShot aShot = new AShot();
    private static String pathScreenshots = "./build/classes/screenshots/";

    public static void AScreenshot(String filename){
        Screenshot screenshot = aShot.takeScreenshot(WebDriverRunner.getWebDriver());

        if( ! java.nio.file.Files.exists(Paths.get(pathScreenshots))) {
            try {
                java.nio.file.Files.createDirectories(Paths.get(pathScreenshots));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        File currentScreenshot = new File(pathScreenshots + filename + ".png");

        try {
            ImageIO.write(screenshot.getImage(), "png", currentScreenshot);
        } catch (IOException e) {
            e.printStackTrace();
        }
        AttachScreen(currentScreenshot);
    }

Allure Framework
Allure attach screenshot

1 Симпатия

Большое спасибо) проблема была с использованием forkCount = 0, при использовании этой строки, не работала строка argLine