运行 allure 命令行生成命令时出错
Error while running allure command line generate command
我刚刚完成了我的 allure 框架 .. 但是在使用命令行生成 HTML 报告时出现以下错误
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlElement at com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector.<init>(JaxbAnnotationIntrospector.java:139) at com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector.<init>(JaxbAnnotationIntrospector.java:126) at io.qameta.allure.context.JacksonContext.<init>(JacksonContext.java:24) at io.qameta.allure.ConfigurationBuilder.useDefault(ConfigurationBuilder.java:50) at io.qameta.allure.Commands.createReportConfiguration(Commands.java:158) at io.qameta.allure.Commands.generate(Commands.java:63) at io.qameta.allure.CommandLine.run(CommandLine.java:129) at java.base/java.util.Optional.orElseGet(Optional.java:348) at io.qameta.allure.CommandLine.main(CommandLine.java:72) Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlElement at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:533) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:186) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:476) ... 9 more
我使用的命令 -
allure generate --report-dir directory-with-results --clean
java --version
java 9-ea
Java(TM) SE Runtime Environment (build 9-ea+162)
Java HotSpot(TM) 64-Bit Server VM (build 9-ea+162, mixed mode)
allure --version
2.0.0
rspec -v
RSpec 3.6
所以没有解决方案,但根据@Nicolai,我降级到 JAVA 8 并解决了问题。
关于我如何按照提到的这些简单步骤进行降级 here
无需降级 java,至少在 Linux 上有更简单的解决方案。
所以在我的例子中,我有 java 8 和 java 9。默认情况下使用 java 9。
如果魅力需要java 8,我就运行这样:
$ JAVA_HOME=/usr/lib/jvm/java-8-oracle allure generate
这会暂时将 java 版本从 9 切换到 8,仅用于此命令。
有非常简单的方法可以通过 allure 生成报告。
首先安装诱惑。
魅力-pytest 2.6.0
魅力-python-公地 2.6.0
如果您无法生成报告,请按照以下步骤操作。
步骤-1(使用pytest)
pytest test_parameterDemo.py --alluredir=要保存报告的路径。
步数-2
诱惑服务 report_path
如果它仍然显示魅力不是命令 (blah -blah)
然后使用以下命令使用 npm 插件安装 allure
npm install -g allure-commandline --save-dev
然后再次执行第 2 步,然后将启动一台服务器,您可以看到诱惑报告。
我刚刚完成了我的 allure 框架 .. 但是在使用命令行生成 HTML 报告时出现以下错误
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlElement at com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector.<init>(JaxbAnnotationIntrospector.java:139) at com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector.<init>(JaxbAnnotationIntrospector.java:126) at io.qameta.allure.context.JacksonContext.<init>(JacksonContext.java:24) at io.qameta.allure.ConfigurationBuilder.useDefault(ConfigurationBuilder.java:50) at io.qameta.allure.Commands.createReportConfiguration(Commands.java:158) at io.qameta.allure.Commands.generate(Commands.java:63) at io.qameta.allure.CommandLine.run(CommandLine.java:129) at java.base/java.util.Optional.orElseGet(Optional.java:348) at io.qameta.allure.CommandLine.main(CommandLine.java:72) Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlElement at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:533) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:186) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:476) ... 9 more
我使用的命令 -
allure generate --report-dir directory-with-results --clean
java --version
java 9-ea
Java(TM) SE Runtime Environment (build 9-ea+162)
Java HotSpot(TM) 64-Bit Server VM (build 9-ea+162, mixed mode)
allure --version
2.0.0
rspec -v
RSpec 3.6
所以没有解决方案,但根据@Nicolai,我降级到 JAVA 8 并解决了问题。
关于我如何按照提到的这些简单步骤进行降级 here
无需降级 java,至少在 Linux 上有更简单的解决方案。 所以在我的例子中,我有 java 8 和 java 9。默认情况下使用 java 9。
如果魅力需要java 8,我就运行这样:
$ JAVA_HOME=/usr/lib/jvm/java-8-oracle allure generate
这会暂时将 java 版本从 9 切换到 8,仅用于此命令。
有非常简单的方法可以通过 allure 生成报告。 首先安装诱惑。 魅力-pytest 2.6.0 魅力-python-公地 2.6.0
如果您无法生成报告,请按照以下步骤操作。 步骤-1(使用pytest) pytest test_parameterDemo.py --alluredir=要保存报告的路径。
步数-2 诱惑服务 report_path
如果它仍然显示魅力不是命令 (blah -blah)
然后使用以下命令使用 npm 插件安装 allure npm install -g allure-commandline --save-dev
然后再次执行第 2 步,然后将启动一台服务器,您可以看到诱惑报告。