Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

При генерации отчёта в Allure появляется ошибка

pytest
allure
Теги: #<Tag:0x00007fedbaeac310> #<Tag:0x00007fedbaeac158>

(Павел Уколов) #1

Здравствуйте!

Возникает ошибка при генерации отчётов. Использую pytest (v.3.2.2), allure commandline (v.2.3.5), python (v.3.6.2) и pytest allure adapter (установил с помощью pip install pytest-allure-adaptor). Здесь https://pypi.python.org/pypi/pytest-allure-adaptor написано, что плагин поддерживает только Allure 1.4.x версии - имеется в виду версия commandline? Я пробовал ставить 1.4, но ошибка всё равно возникает. Последовательность действий такая:

  1. установил commandline, adaptor;
  2. запустил py.test test.py --alluredir D:\project\report;
  3. тесты прогнались, в директории появилась новая папка “report”, в ней есть .xml-файл;
  4. запускаю allure generate D:\project\report -o D:\project или allure serve D:\project\report и т.д. - получаю ошибку:
========================= 9 passed in 128.02 seconds ==========================

Generating report to temp directory...
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBEx
ception
        at io.qameta.allure.allure1.Allure1Plugin.xmlFiles(Allure1Plugin.java:39
3)
        at io.qameta.allure.allure1.Allure1Plugin.getStreamOfAllure1Results(Allu
re1Plugin.java:388)
        at io.qameta.allure.allure1.Allure1Plugin.readResults(Allure1Plugin.java
:103)
        at io.qameta.allure.ReportGenerator.lambda$readResults$0(ReportGenerator
.java:32)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1378)
        at io.qameta.allure.ReportGenerator.readResults(ReportGenerator.java:32)

        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipe
line.java:195)
        at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipe
line.java:177)
        at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(A
rrayList.java:1492)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline
.java:484)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractP
ipeline.java:474)
        at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Redu
ceOps.java:913)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline
.java:234)
        at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipelin
e.java:511)
        at io.qameta.allure.ReportGenerator.generate(ReportGenerator.java:54)
        at io.qameta.allure.ReportGenerator.generate(ReportGenerator.java:43)
        at io.qameta.allure.Commands.generate(Commands.java:88)
        at io.qameta.allure.Commands.serve(Commands.java:112)
        at io.qameta.allure.CommandLine.run(CommandLine.java:136)
        at java.base/java.util.Optional.orElseGet(Optional.java:361)
        at io.qameta.allure.CommandLine.main(CommandLine.java:72)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinCla
ssLoader.java:582)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(C
lassLoaders.java:185)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
        ... 21 more

Подскажите, пожалуйста, в чём проблема. Заранее спасибо!

UPD: Установлен Java JDK-9, путь к нему указан в переменной окружения - всё, как указано в документации.


(Ильдар Бекмансуров) #2

allure generate вы из директории allure-commandline\bin запускаете?
Попробуйте добавить в команду allure generate D:\project\report -o D:\project –clean


(Павел Уколов) #3

Видимо, ошибка была в том, что запускал generate из той же директории, где и проект. Хотя, в переменную окружения PATH ведь добавлено было - это настолько принципиально? В любом случае, большое спасибо, Ильдар!