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

Java Selenide Allure не прикрепляются скриншоты к отчётам

Теги: #<Tag:0x00007fd768a91a90> #<Tag:0x00007fd768a91950> #<Tag:0x00007fd768a917e8> #<Tag:0x00007fd768a916d0> #<Tag:0x00007fd768a91608> #<Tag:0x00007fd768a90758> #<Tag:0x00007fd768a90618> #<Tag:0x00007fd768a90488>

Всем привет! Пытаюсь прикрепить скриншоты к отчётам. При запуске в IDE, скриншоты прикрепляются к отчётам allure. Но если запускать из консоли, тогда прикрепляется пустой файл. Хотя смотрел, скриншоты создаются.

Мой код для прикрепления сриншота к провальным тестам

@Override
    public void testFailed(ExtensionContext context, Throwable throwable) {
        String methodName = String.valueOf(context.getTestMethod());
        String imageName = screenshot("./screenshots/" + methodName);
        System.out.println(imageName);
        AttachScreen(new File(imageName));
        ABrowserLogConsole();
    }

    @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;
        }
    }

Запускаю из консоли

./gradlew clean :desktop_client:testdesktoplogin -Dhostserver="servername" -Dport="1110"

Спасибо)

Ну сделайте вы проще, ну нафига это всё? Скорее всего, путь у вас не полный, вот и не получается приаттачить, надо .getAbsoluteFile() делать:
return Files.readAllBytes(screenshot.getAbsoluteFile().toPath());

1 Симпатия

Не помогло( Уже в самом тесте попробовал реализовать создание и прикрепление скриншота. Результат тот же. В IDE всё прикрепляется, в консоли только создаётся.

 @Test
    @Order(1)
    void test_Send_First_Message() {
        testCommentsPage.sendMessages();
        String imageName = screenshot("screenshots/" + new Exception().getStackTrace()[0].getMethodName());
        System.out.println(imageName);
        attachToReportTest.AttachScreen(new File(imageName));
    }

Прикрепление скриншота

@Attachment(type = "image/png")
    public byte[] AttachScreen(File screenshot) {
        System.out.println(screenshot.getAbsoluteFile().toPath());
        try {
            return Files.readAllBytes(screenshot.getAbsoluteFile().toPath());
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }

а зачем юзать метод, который жрет File? ты же путь уже получаешь в тесте, там его делай абсолютным и отдавай в метод загрузки

1 Симпатия

Вот так скриншоты добавляются)

@Attachment(type = "image/png")
    public byte[] AttachScreen() {
        return ((TakesScreenshot) WebDriverRunner.getWebDriver()).getScreenshotAs(OutputType.BYTES);
    }