ExtentReport : FreeMarker 模板错误:以下已评估为 null 或缺失:

Posted

技术标签:

【中文标题】ExtentReport : FreeMarker 模板错误:以下已评估为 null 或缺失:【英文标题】:ExtentReport : FreeMarker template error: The following has evaluated to null or missing: 【发布时间】:2016-02-29 16:20:40 【问题描述】:

我收到以下异常:

FreeMarker 模板错误: 以下已评估为 null 或缺失: ==> log.stepName [在模板“Extent.Offline.ftl”中,第 297 行,第 93 列]


提示:导致此错误的是最后一个点之后的步骤,而不是之前的步骤。

提示:如果已知失败的表达式合法地引用了有时为 null 或缺失的内容,请指定一个默认值,例如 myOptionalVar!myDefault,或使用 enter code heremyOptionalVar??>when-present何时丢失。 (这些仅涵盖表达式的最后一步;要涵盖整个表达式,请使用括号:(myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??

在 freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:131) 在 freemarker.core.EvalUtil.coerceModelToString(EvalUtil.java:355) 在 freemarker.core.Expression.evalAndCoerceToString(Expression.java:82) 在 freemarker.core.DollarVariable.accept(DollarVariable.java:41) 在 freemarker.core.Environment.visit(Environment.java:324) 在 freemarker.core.MixedContent.accept(MixedContent.java:54) 在 freemarker.core.Environment.visitByHiddingParent(Environment.java:345) 在 freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:48) 在 freemarker.core.Environment.visit(Environment.java:324) 在 freemarker.core.MixedContent.accept(MixedContent.java:54) 在 freemarker.core.Environment.visitByHiddingParent(Environment.java:345) 在 freemarker.core.IteratorBlock$IterationContext.executeNestedBlockInner(IteratorBlock.java:268) 在 freemarker.core.IteratorBlock$IterationContext.executeNestedBlock(IteratorBlock.java:220) 在 freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:194) 在 freemarker.core.Environment.visitIteratorBlock(Environment.java:572) 在 freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:78) 在 freemarker.core.IteratorBlock.accept(IteratorBlock.java:64) 在 freemarker.core.Environment.visit(Environment.java:324) 在 freemarker.core.MixedContent.accept(MixedContent.java:54) 在 freemarker.core.Environment.visitByHiddingParent(Environment.java:345) 在 freemarker.core.IteratorBlock$IterationContext.executeNestedBlockInner(IteratorBlock.java:268) 在 freemarker.core.IteratorBlock$IterationContext.executeNestedBlock(IteratorBlock.java:220) 在 freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:194) 在 freemarker.core.Environment.visitIteratorBlock(Environment.java:572) 在 freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:78) 在 freemarker.core.IteratorBlock.accept(IteratorBlock.java:64) 在 freemarker.core.Environment.visit(Environment.java:324) 在 freemarker.core.MixedContent.accept(MixedContent.java:54) 在 freemarker.core.Environment.visit(Environment.java:324) 在 freemarker.core.Environment.process(Environment.java:302) at freemarker.template.Template.process(Template.java:325) 在 com.relevantcodes.extentreports.htmlReporter.flush (HTMLReporter.java:151) 在 com.relevantcodes.extentreports.Report.flush(Report.java:213) at com.relevantcodes.extentreports.ExtentReports.flush(ExtentReports.java:491) 在 com.mobile.app.sainity.testcases.Sainity.main(Sainity.java:147) java.lang.NullPointerException at java.io.Writer.write(Unknown Source) at com.relevantcodes.extentreports.utils.Writer.write(Writer.java:21) 在 com.relevantcodes.extentreports.HTMLReporter.flush(HTMLReporter.java:164) at com.relevantcodes.extentreports.Report.flush(Report.java:213) at com.relevantcodes.extentreports.ExtentReports.flush(ExtentReports.java:491) 在 com.mobile.app.sainity.testcases.Sainity.main(Sainity.java:147)

【问题讨论】:

能否也粘贴导致此问题的相关代码? 【参考方案1】:

您可以升级到最新的 extent 2.40 版本。它适用于我的离线报告。

【讨论】:

以上是关于ExtentReport : FreeMarker 模板错误:以下已评估为 null 或缺失:的主要内容,如果未能解决你的问题,请参考以下文章

TestNG与ExtentReport集成

extentReport生成测试报告

.NET自动化测试的工具链:Selenium+NUnit+ExtentReport

测试报告ExtentReport改进

使用ExtentReport生成漂亮的测试报告

转自动化框架中引入ExtentReport美化报告