исключение парсера sax при генерации результатов allure

Я использую платформу Allure для создания тестовых отчетов. Используется как зависимость maven в тестовой среде.

При выполнении тестов в jenkins Allure создал отчеты, как и ожидалось, однако в консоли есть несколько исключений для файлов xml, созданных allure. Allure создает xml-файлы из тестовой информации, однако он генерирует xml-файл из ответа rest API в формате html/JSON, и, поскольку это недопустимый xml-файл, создается исключение Sax Parser.

Я не могу понять, как разрешить эти исключения.

Ниже приведен фрагмент исключения [Fatal Error] da669b14-4d30-4260-8815-eab1f720661b-attachment.xml:1:1: Содержимое не разрешено в прологе. Не удалось проанализировать файл /home/jenkins/workspace/xxx_trunk-H4U6TKVVIR44VYBZR7Q53HWUDRP5C3JJEEVZOEYQTCQK53LROIJA/.ci-reports/allure-results/da669b14-4d30-4260-8815-eab1f720661b-attachment.xml.xml: {} systemId: файл:/home/jenkins/workspace/amp-adengine_trunk-H4U6TKVVIR44VYBZR7Q53HWUDRP5C3JJEEVZOEYQTCQK53LROIJA/.ci-reports/allure-results/da669b14-4d30-4260-8815-eab1f720661xml-attachment. номер строки: 1; номер столбца: 1; Содержание не доступно в прологе. на com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:257) на com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339) в javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:205) в io.qameta.allure.junitxml.JunitXmlPlugin.parseRootElement(JunitXmlPlugin.java:97) в io.qameta.allure.junitxml.JunitXmlPlugin.lambda$readResults $0(JunitXmlPlugin.java:87) в java.util.ArrayList.forEach(ArrayList.java:1249) в io.qameta.allure.junitxml.JunitXmlPlugin.readResults(JunitXmlPlugin.java:87) в io.qameta.allure.ReportGenerator .lambda$readResults$0(ReportGenerator.java:32) в java.util.ArrayList.forEach(ArrayList.java:1249) в io.qameta.allure.ReportGenerator.readResults(ReportGenerator.java:32) в java.util.stream .ReferencePipeline$3$1.accept(ReferencePipeline.java:193) в java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) в java.util.ArrayList$ArrayListSpl iterator.forEachRemaining(ArrayList.java:1374) в java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) в java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) в java.util.stream .ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) в java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) в java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) в io. qameta.allure.ReportGenerator.generate(ReportGenerator.java:54) на io.qameta.allure.ReportGenerator.generate(ReportGenerator.java:43) на io.qameta.allure.Commands.generate(Commands.java:89) на io .qameta.allure.CommandLine.run(CommandLine.java:129) в java.util.Optional.orElseGet(Optional.java:267) в io.qameta.allure.CommandLine.main(CommandLine.java:72)

Ответ от API всегда будет HTML/JSON и никогда не будет ответом xml. Может ли кто-нибудь помочь мне разрешить это исключение?


person NewTechie    schedule 08.05.2018    source источник


Ответы (1)


Ответ действительно зависит от того, как вы используете Allure для сохранения вложений. Как правило, при сохранении вложения можно указать тип MIME и расширение файла.

@Attachment(value = "API response", type = "application/json", fileExtension = ".json")
public String requestAPI() {
    ...
    return response;
}
person Dmitry Mayer    schedule 09.05.2018
comment
Спасибо за ваше предложение, помогло мне найти правильное решение. - person NewTechie; 18.05.2018