freemarker.requirements.ftl Maven / Gradle / Ivy
<#if requirements.parentRequirement.isPresent()>
<#assign pageTitle = inflection.of(requirements.parentRequirement.get().type).inPluralForm().asATitle() >
<#else>
<#assign pageTitle = "Requirements" >
<#assign requirementTypeTitle = inflection.of(requirements.type).asATitle() >
<#assign requirementsSectionTitle = inflection.of(requirements.type).inPluralForm().asATitle() >
${pageTitle}
<#include "libraries/favicon.ftl">
<#include "libraries/common.ftl">
<#include "libraries/jquery-ui.ftl">
<#include "libraries/datatables.ftl">
<#assign pie = true>
<#include "components/test-outcomes.ftl">
<#include "components/requirements-list.ftl">
<#assign testResultData = resultCounts.byTypeFor("success","pending","ignored","skipped","failure","error","compromised") >
<#assign testLabels = resultCounts.percentageLabelsByTypeFor("success","pending","ignored","skipped","failure","error","compromised") >
<#assign graphType="automated-and-manual-results" >
<#if (prettyTables) >
<#if (requirements.parentRequirement.isPresent())>
<#assign parentRequirement = requirements.parentRequirement.get() >
<#assign parentTitle = inflection.of(parentRequirement.displayName).asATitle() >
<#assign parentType = inflection.of(parentRequirement.type).asATitle() >
<#if (parentRequirement.cardNumber?has_content) >
<#assign issueNumber = "[" + reportFormatter.addLinks(parentRequirement.cardNumber) + "]" >
<#else>
<#assign issueNumber = "">
<#include "menu.ftl">
<#if requirements.parentRequirement.isPresent()>
<@main_menu selected="${requirements.parentRequirement.get().type}" />
<#else>
<@main_menu selected="requirements" />
<#if (requirements.parentRequirement.isPresent())>
<#if isLeafRequirement && filteredTags?has_content >
<#else>
${parentType}: ${issueNumber} ${formatter.htmlCompatibleStoryTitle(parentTitle)}
<#if isLeafRequirement && filteredTags?has_content >
<#if parentRequirement.narrative.renderedText?has_content>
${formatter.renderDescriptionWithEmbeddedResults(parentRequirement.narrative.renderedText, requirements)}
<#foreach customField in parentRequirement.customFields >
<#if parentRequirement.getCustomField(customField).present>
${customField}
${parentRequirement.getCustomField(customField).get().renderedText}
<#if (requirements.overview?has_content)>
${formatter.renderDescriptionWithFormattedTables(requirements.overview, requirements)}
<#if !isLeafRequirement>
Requirements Overview
<#else>
Overview
<#list scenarioGroups as scenarioGroup>
<#assign scenarioInRule = false />
<#if scenarioGroup.ruleName?has_content>
<#assign scenarioInRule = true />
Rule: ${scenarioGroup.ruleName}
<#if scenarioGroup.hasScenarios() >
<#list scenarioGroup.mainScenarios as scenario>
<#assign outcome_icon = formatter.resultIcon().forResult(scenario.result) />
<#if scenarioInRule>
<#assign scenarioClass = "scenario-toc-entry"/>
<#else>
<#assign scenarioClass = "orphan-scenario-toc-entry"/>
${scenario.type}: ${formatter.renderTitle(scenario.simplifiedName)}
<#if scenario.hasExamples() >
(${scenario.numberOfExamples})
<#if outcome_icon?has_content>
${outcome_icon}
<#if outcome_icon?has_content>
<#if (scenario.isManual())>
<#if outcome_icon?has_content>
Scenarios
<#list scenarioGroups as scenarioGroup>
<#if scenarioGroup.ruleName?has_content>
Rule: ${scenarioGroup.ruleName}
<#if scenarioGroup.ruleDescription?has_content>
${formatter.renderText(scenarioGroup.ruleDescription)}
<#if scenarioGroup.hasBackground()>
Background: <#if scenarioGroup.backgroundTitle?has_content>${formatter.renderText(scenarioGroup.backgroundTitle)}
<#if scenarioGroup.backgroundDescription?has_content>
${formatter.renderText(scenarioGroup.backgroundDescription)}
<#list scenarioGroup.backgroundSteps as step>
${formatter.renderHtmlEscapedDescription(step)}
<#list scenarioGroup.mainScenarios as scenario>
<#assign outcome_icon = formatter.resultIcon().forResult(scenario.result) />
<#--<#if outcome_icon?has_content>-->
<#---->
<#--<#list scenario.scenarioReportBadges as scenarioReporBadge>-->
<#--${scenarioReporBadge}-->
<#---->
<#---->
<#---->
<#if scenario.description?has_content>
${formatter.renderHtmlEscapedDescription(scenario.description)}
<#list scenario.steps as step>
${formatter.renderHtmlEscapedDescription(step)}
<#list scenario.examples as example>
${formatter.renderTableDescription(example, requirements)}
<#if resultCounts.getTotalOverallTestCount() != 0>
<#else>
<#assign successReport = reportName.withPrefix(currentTag).forTestResult("success") >
<#assign brokenReport = reportName.withPrefix(currentTag).forTestResult("broken") >
<#assign failureReport = reportName.withPrefix(currentTag).forTestResult("failure") >
<#assign errorReport = reportName.withPrefix(currentTag).forTestResult("error") >
<#assign compromisedReport = reportName.withPrefix(currentTag).forTestResult("compromised") >
<#assign pendingReport = reportName.withPrefix(currentTag).forTestResult("pending") >
<#assign skippedReport = reportName.withPrefix(currentTag).forTestResult("skipped") >
<#assign ignoredReport = reportName.withPrefix(currentTag).forTestResult("ignored") >
Scenario Results (including rows of test
data)
Automated
<#if resultCounts.hasManualTests() >
Manual
Total
<#if (resultCounts.getOverallTestCount("success") != 0)>
Passing
<#else>
Passing
${resultCounts.getAutomatedTestCount("success")}
${resultCounts.getAutomatedTestPercentageLabel("success")}
<#if resultCounts.hasManualTests() >
${resultCounts.getManualTestCount("success")}
${resultCounts.getManualTestPercentageLabel("success")}
${resultCounts.getOverallTestCount("success")}
${resultCounts.getOverallTestPercentageLabel("success")}
<#if (resultCounts.getOverallTestCount("pending") != 0)>
Pending
<#else>
Pending
${resultCounts.getAutomatedTestCount("pending")}
${resultCounts.getAutomatedTestPercentageLabel("pending")}
<#if resultCounts.hasManualTests() >
${resultCounts.getManualTestCount("pending")}
${resultCounts.getManualTestPercentageLabel("pending")}
${resultCounts.getOverallTestCount("pending")}
${resultCounts.getOverallTestPercentageLabel("pending")}
<#if (resultCounts.getOverallTestCount("ignored") != 0)>
Ignored
<#else>
Ignored
${resultCounts.getAutomatedTestCount("ignored")}
${resultCounts.getAutomatedTestPercentageLabel("ignored")}
<#if resultCounts.hasManualTests() >
${resultCounts.getManualTestCount("ignored")}
${resultCounts.getManualTestPercentageLabel("ignored")}
${resultCounts.getOverallTestCount("ignored")}
${resultCounts.getOverallTestPercentageLabel("ignored")}
<#if (resultCounts.getOverallTestCount("skipped") != 0)>
Skipped
<#else>
Skipped
${resultCounts.getAutomatedTestCount("skipped")}
${resultCounts.getAutomatedTestPercentageLabel("skipped")}
<#if resultCounts.hasManualTests() >
${resultCounts.getManualTestCount("skipped")}
${resultCounts.getManualTestPercentageLabel("skipped")}
${resultCounts.getOverallTestCount("skipped")}
${resultCounts.getOverallTestPercentageLabel("skipped")}
<#if resultCounts.hasManualTests() >
<#if (resultCounts.getOverallTestsCount("failure","error","compromised") != 0)>
Unsuccessful
<#else>
Unsuccessful
<#else>
<#if (resultCounts.getOverallTestsCount("failure","error","compromised") != 0)>
Unsuccessful
<#else>
Unsuccessful
<#if (resultCounts.getOverallTestCount("failure") != 0)>
Failed
<#else>
Failed
${resultCounts.getAutomatedTestCount("failure")}
${resultCounts.getAutomatedTestPercentageLabel("failure")}
<#if resultCounts.hasManualTests() >
${resultCounts.getManualTestCount("failure")}
${resultCounts.getManualTestPercentageLabel("failure")}
${resultCounts.getOverallTestCount("failure")}
${resultCounts.getOverallTestPercentageLabel("failure")}
<#if (resultCounts.getOverallTestCount("error") != 0)>
Broken
<#else>
Broken
${resultCounts.getAutomatedTestCount("error")}
${resultCounts.getAutomatedTestPercentageLabel("error")}
<#if resultCounts.hasManualTests() >
${resultCounts.getManualTestCount("error")}
${resultCounts.getManualTestPercentageLabel("error")}
${resultCounts.getOverallTestCount("error")}
${resultCounts.getOverallTestPercentageLabel("error")}
<#if (resultCounts.getOverallTestCount("compromised") != 0)>
Compromised
<#else>
Compromised
${resultCounts.getAutomatedTestCount("compromised")}
${resultCounts.getAutomatedTestPercentageLabel("compromised")}
<#if resultCounts.hasManualTests() >
${resultCounts.getManualTestCount("compromised")}
${resultCounts.getManualTestPercentageLabel("compromised")}
${resultCounts.getOverallTestCount("compromised")}
${resultCounts.getOverallTestPercentageLabel("compromised")}
Total
${resultCounts.getTotalAutomatedTestCount()}
<#if resultCounts.hasManualTests() >
${resultCounts.getTotalManualTestCount()}
${resultCounts.getTotalOverallTestCount()}
Execution Time
Clock Time
Fastest Test
Slowest Test
Average Execution Time
${totalTestDuration}
${totalClockDuration}
${minTestDuration}
${maxTestDuration}
${averageTestDuration}
<#if (requirements.requirementOutcomes?has_content)>
<#assign workingRequirementsTitle = inflection.of(requirements.type).inPluralForm().asATitle() >
Functional Coverage
<@requirements_results requirements=requirements title=requirementTypeTitle requirementType=workingRequirementsTitle id="req-results-table"/>
Automated Tests
<#if (automatedTestCases?has_content)>
<#if !isLeafRequirement>
${leafRequirementType}
Scenario
Steps
Started
Duration
Result
<#list automatedTestCases as scenario>
<#assign outcome_icon = formatter.resultIcon().forResult(scenario.result) />
<#if !isLeafRequirement>
<#if scenario.parentName?has_content>
${scenario.parentName}
<#if outcome_icon?has_content>
${formatter.renderTitle(scenario.title)}
<#else>
${formatter.renderTitle(scenario.title)}
<#if scenario.hasExamples() >
(${scenario.numberOfExamples})
${scenario.stepCount}
${scenario.formattedStartTime}
${scenario.formattedDuration}
<#if outcome_icon?has_content >
${outcome_icon}
<#else>
<#else>
No automated tests were executed
Manual Tests
<#if (manualTestCases?has_content)>
<#if !isLeafRequirement>
${leafRequirementType}
Scenario
Steps
Result
<#list manualTestCases as scenario>
<#assign outcome_icon = formatter.resultIcon().forResult(scenario.result) />
<#if !isLeafRequirement>
<#if scenario.parentName?has_content>
${scenario.parentName}
${scenario.title}
<#if scenario.hasExamples() >
(${scenario.numberOfExamples})
${scenario.stepCount}
${outcome_icon}
<#else>
No manual tests were recorded
<#if evidence?has_content>
Evidence
Scenario
Title
Details
<#list evidence as evidenceRecord>
${evidenceRecord.scenario}
${evidenceRecord.title}
${evidenceRecord.detailsLink}
Serenity BDD version ${serenityVersionNumber!"SNAPSHOT-BUILD"}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy