我刚刚完成了我的诱惑框架..但是在使用命令行生成HTML报告时,我得到了以下错误
namespace CodeDomSubProducer
{
interface ICodeDomSubProducer
{
// Methods
void Initialize(CodeDomBaseProducer baseProducer, SubProducer subProducer, IDictionary context);
void Produce(IDictionary context, CodeCompileUnit unit);
void Terminate(IDictionary context);
}
}
我使用的命令 -
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
答案 0 :(得分:1)
没有必要降级java,这是一个更简单的解决方案,至少在Linux上是这样。 所以在我的例子中我有java 8和java 9.默认使用java 9。
如果魅力需要java 8,我就这样运行:
$ JAVA_HOME=/usr/lib/jvm/java-8-oracle allure generate
这只是暂时将java版本从9切换到8。
答案 1 :(得分:0)
所以没有这样的解决方案,但根据@Nicolai,我降级为JAVA 8并解决了问题。
关于我如何降级,请按照here
提到的这些简单步骤进行操作答案 2 :(得分:0)
有一种非常简单的方法可以通过吸引力生成报告。 首先安装诱惑。 诱惑-pytest 2.6.0 allure-python-commons 2.6.0
然后,如果您无法生成报告,请执行以下步骤。 步骤-1(使用pytest) pytest test_parameterDemo.py --alluredir =您要保存报告的路径。
步骤-2 吸引人report_path
如果仍然显示出诱惑力,则不是命令(blah -blah)
然后使用带有以下命令的npm插件安装诱惑 npm install -g allure-commandline --save-dev
然后再次执行步骤2,然后一台服务器将启动,您可以看到诱人的报告。