исключение синтаксического анализатора при генерации результатов очарования - PullRequest
0 голосов
/ 08 мая 2018

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

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

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

Ниже приведен фрагмент исключения [Фатальная ошибка] da669b14-4d30-4260-8815-eab1f720661b-attachment.xml: 1: 1: содержимое не разрешено в прологе. Не удалось выполнить анализ файла org.xml.sax.SAXParseException; systemId: file: /home/jenkins/workspace/amp-adengine_trunk-H4U6TKVVIR44VYBZR7Q53HWUDRP5C3JJEEVZOEYQTCQK53LROIJA/.ci-reports/allure-results/da669b14-4d30-e0b8715x880780x880780x8807x1608807x1807x1608808x7 номер строки: 1; columnNumber: 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 $ ArrayListSpliterator.forEachRemaining (ArrayList.java:1374) в java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:481) в java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:471) at 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 (Необязательно.java:267) в io.qameta.allure.CommandLine.main (CommandLine.java:72)

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

1 Ответ

0 голосов
/ 09 мая 2018

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

@Attachment(value = "API response", type = "application/json", fileExtension = ".json")
public String requestAPI() {
    ...
    return response;
}
...