serenity-bdd / serenity-core

Serenity BDD is a test automation library designed to make writing automated acceptance tests easier, and more fun.
http://serenity-bdd.info
Other
717 stars 514 forks source link

Broken Report and FreeMarker Exceptions #159

Closed ns162002 closed 8 years ago

ns162002 commented 8 years ago

Hi all,

I've been battling with an issue for a few days and making little progress. I'm using the latest version of serenity to run tests with cucumber. The tests complete, but the report contains duplicate features and broken links to acceptance tests.

I downloaded the serenity showcases projects and compared with my project, but nothing stands out.

The only error traced on mvn clean install is below, which looks related. Any ideas?


Oct 29, 2015 7:16:27 AM freemarker.log._JDK14LoggerFactory$JDK14Logger error SEVERE: Error executing FreeMarker template FreeMarker template error: The following has evaluated to null or missing: ==> breadcrumbs [in template "freemarker/default.ftl" at line 33, column 16]


Tip: If the failing expression is known to be legally refer to something that's null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptional

Var??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??


FTL stack trace ("~" means nesting-related):

- Failed at: #list breadcrumbs as breadcrumb [in template "freemarker/default.ftl" at line 33, column 9]

Java stack trace (for programmers):

freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...] at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:108) at freemarker.core.Expression.assertNonNull(Expression.java:186) at freemarker.core.IteratorBlock.accept(IteratorBlock.java:64) at freemarker.core.Environment.visit(Environment.java:257) at freemarker.core.MixedContent.accept(MixedContent.java:57) at freemarker.core.Environment.visit(Environment.java:257) at freemarker.core.Environment.process(Environment.java:235) at freemarker.template.Template.process(Template.java:262) at net.thucydides.core.reports.templates.FreemarkerReportTemplate.merge(FreemarkerReportTemplate.java:33) at net.thucydides.core.reports.html.HtmlReporter$Merger.usingContext(HtmlReporter.java:175) at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.generateReportFor(HtmlAcceptanceTestReporter.java:93) at net.thucydides.core.reports.ReportService.generateReportFor(ReportService.java:210) at net.thucydides.core.reports.ReportService.generateQueuedReport(ReportService.java:159) at net.thucydides.core.reports.ReportService.access$000(ReportService.java:25) at net.thucydides.core.reports.ReportService$2.run(ReportService.java:120) at com.google.common.util.concurrent.MoreExecutors$DirectExecutorService.execute(MoreExecutors.java:299) at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156) at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145) at com.google.common.util.concurrent.ListenableFutureTask.done(ListenableFutureTask.java:91) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:384) at java.util.concurrent.FutureTask.set(FutureTask.java:233) at java.util.concurrent.FutureTask.run(FutureTask.java:274) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)

wakaleo commented 8 years ago

What version are you using?

On 29 October 2015 at 07:25, Neil notifications@github.com wrote:

Hi all,

I've been battling with an issue for a few days and making little progress. I'm using the latest version of serenity to run tests with cucumber. The tests complete, but the report contains duplicate features and broken links to acceptance tests.

I downloaded the serenity showcases projects and compared with my project, but nothing stands out.

The only error traced on mvn clean install is below, which looks related.

Any ideas?

Oct 29, 2015 7:16:27 AM freemarker.log._JDK14LoggerFactory$JDK14Logger error SEVERE: Error executing FreeMarker template FreeMarker template error: The following has evaluated to null or missing: ==> breadcrumbs [in template "freemarker/default.ftl" at line 33, column

16]

Tip: If the failing expression is known to be legally refer to something that's null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptional Var??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis:

(myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??

FTL stack trace ("~" means nesting-related):

  • Failed at: #list breadcrumbs as breadcrumb [in template "freemarker/default.ftl" at line 33, column 9] Java stack trace (for programmers):

freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...] at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:108) at freemarker.core.Expression.assertNonNull(Expression.java:186) at freemarker.core.IteratorBlock.accept(IteratorBlock.java:64) at freemarker.core.Environment.visit(Environment.java:257) at freemarker.core.MixedContent.accept(MixedContent.java:57) at freemarker.core.Environment.visit(Environment.java:257) at freemarker.core.Environment.process(Environment.java:235) at freemarker.template.Template.process(Template.java:262) at net.thucydides.core.reports.templates.FreemarkerReportTemplate.merge(FreemarkerReportTemplate.java:33) at net.thucydides.core.reports.html.HtmlReporter$Merger.usingContext(HtmlReporter.java:175) at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.generateReportFor(HtmlAcceptanceTestReporter.java:93) at net.thucydides.core.reports.ReportService.generateReportFor(ReportService.java:210) at net.thucydides.core.reports.ReportService.generateQueuedReport(ReportService.java:159) at net.thucydides.core.reports.ReportService.access$000(ReportService.java:25) at net.thucydides.core.reports.ReportService$2.run(ReportService.java:120) at com.google.common.util.concurrent.MoreExecutors$DirectExecutorService.execute(MoreExecutors.java:299) at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156) at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145) at com.google.common.util.concurrent.ListenableFutureTask.done(ListenableFutureTask.java:91) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:384) at java.util.concurrent.FutureTask.set(FutureTask.java:233) at java.util.concurrent.FutureTask.run(FutureTask.java:274) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)

— Reply to this email directly or view it on GitHub https://github.com/serenity-bdd/serenity-core/issues/159.


John Smart | Wakaleo Consulting | +61 407 247 642 Optimizing your software development process http://www.wakaleo.com | john.smart@wakaleo.com


We love breaking down silos and helping smart teams collaborate better! Ask about our tailored on-site workshops in Agile Requirements Discovery http://wakaleo.com/training/advanced-agile-requirements-workshop, Behaviour Driven Development http://wakaleo.com/training/advanced-agile-requirements-workshop, Agile Development Practices http://wakaleo.com/training/testing-and-tdd-for-java-developers, and Test Automation http://wakaleo.com/training/automated-web-testing-with-webdriver-and-thucydides !


ns162002 commented 8 years ago

I'm using the following versions:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <serenity.version>1.1.10</serenity.version>
    <serenity.maven.version>1.1.7</serenity.maven.version>
    <serenity.cucumber.version>1.1.1</serenity.cucumber.version>
</properties>

I've attached a screenshot of the report to highlight where the issues are in red.

reportscreenshot

wakaleo commented 8 years ago

Could you try with 1.1.17? On 29/10/2015 8:24 AM, "Neil" notifications@github.com wrote:

I'm using the following versions:

UTF-8 1.1.10 1.1.7 1.1.1

— Reply to this email directly or view it on GitHub https://github.com/serenity-bdd/serenity-core/issues/159#issuecomment-152110253 .

ns162002 commented 8 years ago

Thanks for quick reply John.

I tried specifying LATEST at some point for all dependencies with no luck. I've just tired again with 1.1.17, but same exceptions are traced and report contains same issues.

wakaleo commented 8 years ago

Is the exception exactly the same? The template has changed, so I want to be sure of the line number

On 29 October 2015 at 08:34, Neil notifications@github.com wrote:

Thanks for quick reply John.

I tried specifying LATEST at some point for all dependencies with no luck. I've just tired again with 1.1.17, but same exceptions are traced and report contains same issues.

— Reply to this email directly or view it on GitHub https://github.com/serenity-bdd/serenity-core/issues/159#issuecomment-152112219 .


John Smart | Wakaleo Consulting | +61 407 247 642 Optimizing your software development process http://www.wakaleo.com | john.smart@wakaleo.com


We love breaking down silos and helping smart teams collaborate better! Ask about our tailored on-site workshops in Agile Requirements Discovery http://wakaleo.com/training/advanced-agile-requirements-workshop, Behaviour Driven Development http://wakaleo.com/training/advanced-agile-requirements-workshop, Agile Development Practices http://wakaleo.com/training/testing-and-tdd-for-java-developers, and Test Automation http://wakaleo.com/training/automated-web-testing-with-webdriver-and-thucydides !


ns162002 commented 8 years ago

Sorry it took a few mins. I blasted my maven repository.

Looks like the same exception. Complete build output below - sorry there's a lot.

Updated output below as I noticed another error (missing Given implementation). I've been removing tests to try and isolate the issue..

C:\Git\Cucumber\serenity-demos-master\cxp-acceptance-test>mvn clean verify Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512m; support was removed in 8.0 [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Sample Serenity Cucumber project 0.0.1-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ cucumber-webtests --- [INFO] Deleting C:\Git\Cucumber\serenity-demos-master\cxp-acceptance-test\target [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ cucumber-webtests --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory C:\Git\Cucumber\serenity-demos-master\cxp-acceptance-test\src\main\resources [INFO] [INFO] --- maven-compiler-plugin:3.2:compile (default-compile) @ cucumber-webtests --- [INFO] No sources to compile [INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ cucumber-webtests --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 1 resource [INFO] [INFO] --- maven-compiler-plugin:3.2:testCompile (default-testCompile) @ cucumber-webtests --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 9 source files to C:\Git\Cucumber\serenity-demos-master\cxp-acceptance-test\target\test-classes [INFO] [INFO] --- maven-surefire-plugin:2.18:test (default-test) @ cucumber-webtests --- [INFO] Tests are skipped. [INFO] [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ cucumber-webtests --- [WARNING] JAR will be empty - no content was marked for inclusion! [INFO] Building jar: C:\Git\Cucumber\serenity-demos-master\cxp-acceptance-test\target\cucumber-webtests-0.0.1-SNAPSHOT.jar [INFO] [INFO] --- maven-failsafe-plugin:2.18:integration-test (default) @ cucumber-webtests --- [INFO] Failsafe report directory: C:\Git\Cucumber\serenity-demos-master\cxp-acceptance-test\target\failsafe-reports


T E S T S

4 [main] INFO net.thucydides.core.util.PropertiesFileLocalPreferences - LOADING LOCAL PROPERTIES FROM C:\Git\Cucumber\serenity-demos-master\cxp-acceptance-test\serenity.properties

5 [main] INFO net.thucydides.core.util.PropertiesFileLocalPreferences - serenity.browser,width=1200 5 [main] INFO net.thucydides.core.util.PropertiesFileLocalPreferences - webdriver.driver=chrome 5 [main] INFO net.thucydides.core.util.PropertiesFileLocalPreferences - serenity.project.name=Demo Project using Serenity and Cucumber 5 [main] INFO net.thucydides.core.util.PropertiesFileLocalPreferences - serenity.browser,height=1200 5 [main] INFO net.thucydides.core.util.PropertiesFileLocalPreferences - serenity.dry.run=false 5 [main] INFO net.thucydides.core.util.PropertiesFileLocalPreferences - webdriver.timeouts.implicitlywait=5000 5 [main] INFO net.thucydides.core.util.PropertiesFileLocalPreferences - serenity.take.screenshots=AFTER_EACH_STEP 5 [main] INFO net.thucydides.core.util.PropertiesFileLocalPreferences - serenity.use.unique.browser=false 5 [main] INFO net.thucydides.core.util.PropertiesFileLocalPreferences - LOADING LOCAL PROPERTIES FROM C:\Git\Cucumber\serenity-demos-master\cxp-acceptance-test\serenity.properties

Running net.thucydides.showcase.cucumber.Navigation 375 [main] INFO net.serenitybdd.core.Serenity -


 _______. _______ .______       _______ .__   __.  __  .___________.____    ____
/       ||   ____||   _  \     |   ____||  \ |  | |  | |           |\   \  /   /

| (----| |__ | |_) | | |__ | \| | | |---| |----\ \/ / \ \ | __| | / | __| | . | | | | | / .----) | | | | |\ ----.| | | |\ | | | | | | |

|/ ||| | `.____||___||| \| || || |__|

380 [main] INFO net.serenitybdd.core.Serenity - Test Suite Started: Browse To External Site 429 [main] INFO net.serenitybdd.core.Serenity -


| | _/ **| | / _| |/ \ | _ | **| \ | | | | __ \ | | \ | | / \ | |) || | | _| | | | | | | | | ) || | ) || |/ | < | | | |**| || | || |**|____/ || |__/ |// _| || |____|____/

TEST STARTED: External Site Test

Reading requirement from directory name C:\Git\Cucumber\serenity-demos-master\cxp-acceptance-test\target\test-classes\features\navigation 536 [main] INFO net.serenitybdd.core.Serenity -


/ / | | ____/ **| | / || |/ / | | _ | _**| \ (_)___ / / | | | _| \ | | | ' / | || |) | |) | | | | | | |__/ / | | | | ) || | ) | . \ | || /| _/| || || | () // || ||____/ || |/||_|| || |___|____/

TEST SKIPPED: External Site Test

541 [main] INFO net.thucydides.core.reports.ReportService - Reporting formats: [JSON, XML, HTML] 547 [main] INFO net.thucydides.core.reports.ReportService - Found reporter: net.thucydides.core.reports.xml.XMLTestOutcomeReporter@fade1fc(format = Optional.of(XML)) 547 [main] INFO net.thucydides.core.reports.ReportService - Registering reporter: net.thucydides.core.reports.xml.XMLTestOutcomeReporter@fade1fc 554 [main] INFO net.thucydides.core.reports.ReportService - Found reporter: net.thucydides.core.reports.json.JSONTestOutcomeReporter@51972dc7(format = Optional.of(JSON)) 554 [main] INFO net.thucydides.core.reports.ReportService - Registering reporter: net.thucydides.core.reports.json.JSONTestOutcomeReporter@51972dc7 609 [main] INFO net.thucydides.core.reports.ReportService - Found reporter: net.thucydides.core.reports.html.HtmlAcceptanceTestReporter@18c5069b(format = Optional.of(HTML)) 609 [main] INFO net.thucydides.core.reports.ReportService - Registering reporter: net.thucydides.core.reports.html.HtmlAcceptanceTestReporter@18c5069b 697 [main] INFO net.thucydides.core.reports.ReportService - Generating reports using: net.thucydides.core.reports.xml.XMLTestOutcomeReporter@fade1fc 704 [main] INFO net.thucydides.core.reports.ReportService - Processing test outcome Browse To External Site:External Site Test 704 [main] INFO net.thucydides.core.reports.ReportService - net.thucydides.core.reports.xml.XMLTestOutcomeReporter@fade1fc: Generating report for test outcome: Browse To External S ite:External Site Test 785 [main] INFO net.thucydides.core.reports.xml.XMLTestOutcomeReporter - Generating XML report for External Site Test to file C:\Git\Cucumber\serenity-demos-master\cxp-acceptance-t est\target\site\serenity\db7029fb391bbffc2e6042328145edfea29d2c88c575d5e417174d74fb9b6e34.xml 814 [main] INFO net.thucydides.core.reports.xml.XMLTestOutcomeReporter - XML report generated (C:\Git\Cucumber\serenity-demos-master\cxp-acceptance-test\target\site\serenity\db7029 fb391bbffc2e6042328145edfea29d2c88c575d5e417174d74fb9b6e34.xml bytes) 976 824 [main] INFO net.thucydides.core.reports.ReportService - Report generated for Browse To External Site:External Site Test 824 [main] INFO net.thucydides.core.reports.junit.JUnitXMLOutcomeReporter - GENERATING JUNIT REPORTS 824 [main] INFO net.thucydides.core.reports.junit.JUnitXMLOutcomeReporter - GENERATING JUNIT REPORT SERENITY-JUNIT-db7029fb391bbffc2e6042328145edfea29d2c88c575d5e417174d74fb9b6e34. xml 981 [main] INFO net.thucydides.core.reports.ReportService - Reports generated in: 284 981 [main] INFO net.thucydides.core.reports.ReportService - Generating reports using: net.thucydides.core.reports.json.JSONTestOutcomeReporter@51972dc7 982 [main] INFO net.thucydides.core.reports.ReportService - Report generated for Browse To External Site:External Site Test 982 [pool-2-thread-1] INFO net.thucydides.core.reports.ReportService - Processing test outcome Browse To External Site:External Site Test 982 [main] INFO net.thucydides.core.reports.junit.JUnitXMLOutcomeReporter - GENERATING JUNIT REPORTS 982 [pool-2-thread-1] INFO net.thucydides.core.reports.ReportService - net.thucydides.core.reports.json.JSONTestOutcomeReporter@51972dc7: Generating report for test outcome: Browse To External Site:External Site Test 982 [main] INFO net.thucydides.core.reports.junit.JUnitXMLOutcomeReporter - GENERATING JUNIT REPORT SERENITY-JUNIT-db7029fb391bbffc2e6042328145edfea29d2c88c575d5e417174d74fb9b6e34. xml 987 [main] INFO net.thucydides.core.reports.ReportService - Reports generated in: 6 987 [main] INFO net.thucydides.core.reports.ReportService - Generating reports using: net.thucydides.core.reports.html.HtmlAcceptanceTestReporter@18c5069b 988 [main] INFO net.thucydides.core.reports.junit.JUnitXMLOutcomeReporter - GENERATING JUNIT REPORTS 988 [main] INFO net.thucydides.core.reports.junit.JUnitXMLOutcomeReporter - GENERATING JUNIT REPORT SERENITY-JUNIT-db7029fb391bbffc2e6042328145edfea29d2c88c575d5e417174d74fb9b6e34. xml 989 [pool-3-thread-1] INFO net.thucydides.core.reports.ReportService - Processing test outcome Browse To External Site:External Site Test 989 [pool-3-thread-1] INFO net.thucydides.core.reports.ReportService - net.thucydides.core.reports.html.HtmlAcceptanceTestReporter@18c5069b: Generating report for test outcome: Bro wse To External Site:External Site Test 989 [pool-3-thread-1] INFO net.thucydides.core.requirements.RequirementsTagProvider - Reading requirements from net.thucydides.core.requirements.FileSystemRequirementsTagProvider@7 7a9bbc2 990 [pool-3-thread-1] INFO net.thucydides.core.requirements.RequirementsTagProvider - Requirement ancestors for:Requirement{name='Navigation', type='capability' parent = 'null', ca rdNumber='null'} = [Requirement{name='Navigation', type='capability' parent = 'null', cardNumber='null'}] 990 [pool-3-thread-1] INFO net.thucydides.core.requirements.RequirementsTagProvider - Requirement ancestors for:Requirement{name='Browse to external site', type='feature' parent = 'Navigation', cardNumber='null'} = [Requirement{name='Navigation', type='capability' parent = 'null', cardNumber='null'}, Requirement{name='Browse to external site', type='feature' parent = 'Navigation', cardNumber='null'}] 990 [pool-3-thread-1] INFO net.thucydides.core.requirements.RequirementsTagProvider - Requirements found:[Requirement{name='Navigation', type='capability' parent = 'null', cardNumb er='null'}] Oct 29, 2015 9:18:09 AM freemarker.log._JDK14LoggerFactory$JDK14Logger error SEVERE: Error executing FreeMarker template FreeMarker template error: The following has evaluated to null or missing: ==> breadcrumbs [in template "freemarker/default.ftl" at line 33, column 16]


Tip: If the failing expression is known to be legally refer to something that's null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptional Var??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOp

tionalVar.foo)??


FTL stack trace ("~" means nesting-related):

- Failed at: #list breadcrumbs as breadcrumb [in template "freemarker/default.ftl" at line 33, column 9]

Java stack trace (for programmers):

freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...] at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:108) at freemarker.core.Expression.assertNonNull(Expression.java:186) at freemarker.core.IteratorBlock.accept(IteratorBlock.java:64) at freemarker.core.Environment.visit(Environment.java:257) at freemarker.core.MixedContent.accept(MixedContent.java:57) at freemarker.core.Environment.visit(Environment.java:257) at freemarker.core.Environment.process(Environment.java:235) at freemarker.template.Template.process(Template.java:262) at net.thucydides.core.reports.templates.FreemarkerReportTemplate.merge(FreemarkerReportTemplate.java:33) at net.thucydides.core.reports.html.HtmlReporter$Merger.usingContext(HtmlReporter.java:175) at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.generateReportFor(HtmlAcceptanceTestReporter.java:93) at net.thucydides.core.reports.ReportService.generateReportFor(ReportService.java:210) at net.thucydides.core.reports.ReportService.generateQueuedReport(ReportService.java:159) at net.thucydides.core.reports.ReportService.access$000(ReportService.java:25) at net.thucydides.core.reports.ReportService$2.run(ReportService.java:120) at com.google.common.util.concurrent.MoreExecutors$DirectExecutorService.execute(MoreExecutors.java:299) at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156) at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145) at com.google.common.util.concurrent.ListenableFutureTask.done(ListenableFutureTask.java:91) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:384) at java.util.concurrent.FutureTask.set(FutureTask.java:233) at java.util.concurrent.FutureTask.run(FutureTask.java:274) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)

1184 [pool-3-thread-1] ERROR net.thucydides.core.reports.templates.FreemarkerReportTemplate - Syntax error in report template: The following has evaluated to null or missing: ==> breadcrumbs [in template "freemarker/default.ftl" at line 33, column 16]


Tip: If the failing expression is known to be legally refer to something that's null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptional Var??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOp

tionalVar.foo)??


FTL stack trace ("~" means nesting-related):

- Failed at: #list breadcrumbs as breadcrumb [in template "freemarker/default.ftl" at line 33, column 9]

    - Failed at: #list breadcrumbs as breadcrumb  [in template "freemarker/default.ftl" at line 33, column 9]

Oct 29, 2015 9:18:09 AM com.google.common.util.concurrent.ExecutionList executeListener SEVERE: RuntimeException while executing runnable net.thucydides.core.reports.ReportService$2@5da28c8b with executor com.google.common.util.concurrent.MoreExecutors$DirectExecutorS ervice@6ea0d192 java.lang.RuntimeException: Failed to merge template: Failed to process FreeMarker template at net.thucydides.core.reports.html.HtmlReporter$Merger.usingContext(HtmlReporter.java:178) at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.generateReportFor(HtmlAcceptanceTestReporter.java:93) at net.thucydides.core.reports.ReportService.generateReportFor(ReportService.java:210) at net.thucydides.core.reports.ReportService.generateQueuedReport(ReportService.java:159) at net.thucydides.core.reports.ReportService.access$000(ReportService.java:25) at net.thucydides.core.reports.ReportService$2.run(ReportService.java:120) at com.google.common.util.concurrent.MoreExecutors$DirectExecutorService.execute(MoreExecutors.java:299) at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156) at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145) at com.google.common.util.concurrent.ListenableFutureTask.done(ListenableFutureTask.java:91) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:384) at java.util.concurrent.FutureTask.set(FutureTask.java:233) at java.util.concurrent.FutureTask.run(FutureTask.java:274) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: net.thucydides.core.reports.templates.TemplateMergeException: Failed to process FreeMarker template at net.thucydides.core.reports.templates.FreemarkerReportTemplate.merge(FreemarkerReportTemplate.java:42) at net.thucydides.core.reports.html.HtmlReporter$Merger.usingContext(HtmlReporter.java:175) ... 15 more Caused by: freemarker.core.InvalidReferenceException: The following has evaluated to null or missing: ==> breadcrumbs [in template "freemarker/default.ftl" at line 33, column 16]


Tip: If the failing expression is known to be legally refer to something that's null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptional Var??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOp

tionalVar.foo)??


FTL stack trace ("~" means nesting-related):

- Failed at: #list breadcrumbs as breadcrumb [in template "freemarker/default.ftl" at line 33, column 9]

    at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:108)
    at freemarker.core.Expression.assertNonNull(Expression.java:186)
    at freemarker.core.IteratorBlock.accept(IteratorBlock.java:64)
    at freemarker.core.Environment.visit(Environment.java:257)
    at freemarker.core.MixedContent.accept(MixedContent.java:57)
    at freemarker.core.Environment.visit(Environment.java:257)
    at freemarker.core.Environment.process(Environment.java:235)
    at freemarker.template.Template.process(Template.java:262)
    at net.thucydides.core.reports.templates.FreemarkerReportTemplate.merge(FreemarkerReportTemplate.java:33)
    ... 16 more

1186 [pool-3-thread-1] INFO net.thucydides.core.reports.ReportService - Report generated for Browse To External Site:External Site Test 1194 [main] INFO net.thucydides.core.reports.ReportService - Reports generated in: 207

1 Scenarios (←[36m1 skipped←[0m) 3 Steps (←[36m3 skipped←[0m) 0m0.000s

Tests run: 4, Failures: 0, Errors: 0, Skipped: 3, Time elapsed: 0.941 sec - in net.thucydides.showcase.cucumber.Navigation Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0

Results :

Tests run: 4, Failures: 0, Errors: 0, Skipped: 3

[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent! [INFO] [INFO] --- serenity-maven-plugin:1.1.7:aggregate (serenity-reports) @ cucumber-webtests --- [INFO] LOADING LOCAL PROPERTIES FROM C:\Git\Cucumber\serenity-demos-master\cxp-acceptance-test\serenity.properties [INFO] LOADING LOCAL PROPERTIES FROM C:\Git\Cucumber\serenity-demos-master\cxp-acceptance-test\serenity.properties [INFO] serenity.browser,width=1200 [INFO] webdriver.driver=chrome [INFO] serenity.project.name=Demo Project using Serenity and Cucumber [INFO] serenity.browser,height=1200 [INFO] serenity.dry.run=false [INFO] webdriver.timeouts.implicitlywait=5000 [INFO] serenity.take.screenshots=AFTER_EACH_STEP [INFO] serenity.use.unique.browser=false Merging requirements = [Requirement{name='Navigation', type='capability' parent = 'null', cardNumber='null'}] Merging requirements = [] Merged requirements set = [Requirement{name='Navigation', type='capability' parent = 'null', cardNumber='null'}] [INFO] REPORTS GENERATED IN C:\Git\Cucumber\serenity-demos-master\cxp-acceptance-test\target\site\serenity [INFO] REPORT HOME PAGE: C:\Git\Cucumber\serenity-demos-master\cxp-acceptance-test\target\site\serenity\index.html [INFO] Generating release reports for: [Release{label='Release-1.0.0'}] GENERATE CUSTOM REPORTS [INFO] [INFO] --- maven-failsafe-plugin:2.18:verify (default) @ cucumber-webtests --- [INFO] Failsafe report directory: C:\Git\Cucumber\serenity-demos-master\cxp-acceptance-test\target\failsafe-reports [WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent! [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 8.693 s [INFO] Finished at: 2015-10-29T09:18:13+00:00 [INFO] Final Memory: 45M/650M [INFO] ------------------------------------------------------------------------

ns162002 commented 8 years ago

Hi John The duplicate feature issue was my fault. This was an issue with the case used in my feature description:

This works - Feature: Browse to external site

This resulted in duplication - Feature: Browse to External Site

The other issue appears to be related to the maven-enforcer-plugin. I have a dependency that is causing an issue, so when I removed the following the FreeMarker exception occurs:

         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <version>1.4</version>
            <executions>
                <execution>
                    <id>enforce</id>
                    <configuration>
                        <rules>
                            <requireUpperBoundDeps/>
                        </rules>
                    </configuration>
                    <goals>
                        <goal>enforce</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

I'll continue investigating and keep you posted if I uncover the issue.

ns162002 commented 8 years ago

Solved after incrementing version of groovy-all to:

    <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>2.3.3</version>
    </dependency>

Above version was required by another dependency and showcase POM specified 1.8.6.

However, not sure why removing the enforcer plugin resulted in the FreeMarker exceptions. I'm very curious if you can shed any light on this.

wakaleo commented 8 years ago

Not sure, sound's like a dependency conflict issue of some kind.