All Downloads are FREE. Search and download functionalities are using the official Maven repository.

freemarker.home.ftl Maven / Gradle / Ivy




    

    
    

    Serenity Reports

    <#include "libraries/favicon.ftl">

    <#include "libraries/common.ftl">
    <#include "libraries/jquery-ui.ftl">
    <#include "libraries/datatables.ftl">

    <#include "components/tag-list.ftl">
    <#include "components/test-outcomes.ftl">
    <#include "components/result-chart.ftl">
    <#include "components/result-summary.ftl">
    <#include "components/duration-chart.ftl">
    <#include "components/functional-coverage-chart.ftl">
    <#include "components/tag_cloud.ftl">
    <#include "components/result-chart.ftl">
    <#include "components/key-statistics.ftl">
    <#include "components/key-statistics-two-col.ftl">


    <#assign manualTests = testOutcomes.count("manual")>
    <#assign automatedTests = testOutcomes.count("automated")>
    <#assign totalTests = testOutcomes.count("automated")>

    <#assign testResultData = resultCounts.allResultValuesFor("success","pending","ignored","skipped","aborted","failure","error","compromised") >
    <#assign testAutomatedResultData = resultCounts.automatedResultValuesFor("success","pending","ignored","skipped","aborted","failure","error","compromised") >
    <#assign testManualResultData = resultCounts.manualResultValuesFor("success","pending","ignored","skipped","aborted","failure","error","compromised") >
    <#assign testLabels = resultCounts.percentageLabelsByTypeFor("success","pending","ignored","skipped","aborted","failure","error","compromised") >
    <#assign graphType="automated-and-manual-results"/>

    <#assign successfulManualTests = (manualTests.withResult("SUCCESS") > 0)>
    <#assign pendingManualTests = (manualTests.withResult("PENDING") > 0)>
    <#assign ignoredManualTests = (manualTests.withResult("IGNORED") > 0)>
    <#assign abortedManualTests = (manualTests.withResult("ABORTED") > 0)>
    <#assign failingManualTests = (manualTests.withResult("FAILURE") > 0)>

    



${reportOptions.projectName} ${reportOptions.projectSubTitle}
<#assign tagsTitle = 'Related Tags' > <#if (testOutcomes.label == '')> <#assign resultsContext = ''> <#assign pageTitle = 'Test Results: All Tests' > <#else> <#assign resultsContext = '> ' + testOutcomes.label> <#if (currentTagType! != '')> <#assign pageTitle = " " + inflection.of(currentTagType!"").asATitle() + ': ' + tagInflector.ofTag(currentTagType!"", testOutcomes.label).toFinalView() > <#else> <#assign pageTitle = inflection.of(testOutcomes.label).asATitle() >
<#--
-->
Home <#if (parentTag?has_content && parentTag.name! != '')> <#assign titleContext = " (with " + inflection.of(parentTag.type!"").asATitle() + " " + inflection.of(parentTag.name!"").asATitle() + ")" > <#else> <#assign titleContext = "" > <#if (breadcrumbs?has_content)> <#list breadcrumbs as breadcrumb> <#assign breadcrumbReport = absoluteReportName.forRequirementOrTag(breadcrumb) /> <#assign breadcrumbTitle = formatter.renderTitle(inflection.of(breadcrumb.displayName).asATitle()) > <#assign breadcrumbType = inflection.of(breadcrumb.type).asATitle() > > <#--${formatter.htmlCompatible(breadcrumbTitle)}--> ${formatter.htmlCompatibleStoryTitle(breadcrumbTitle)} <#else> <#if currentTagType?has_content> > ${inflection.of(currentTagType!"").asATitle()} ${formatter.renderTitle(titleContext)} <#if testOutcomes.label?has_content> > ${formatter.htmlCompatibleStoryTitle(formatter.renderHeaders(inflection.of(testOutcomes.label).asATitle()))}
<#if (customFields?has_content) && (customFields?size > 0) >
<#list customFields as customField> <#list customFieldValues as customFieldValue>
${customField}
${customFieldValue}
<#include "menu.ftl"> <@main_menu selected="home" />

${pageTitle}

<#assign scenarioLabel = inflection.of(testOutcomes.totalTestScenarios).times("scenario").inPluralForm().toString() > ${testOutcomes.testCaseCount} ${testOutcomes.resultTypeLabel} <#if (csvReport! != '')> | <#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 abortedReport = reportName.withPrefix(currentTag).forTestResult("aborted") > <#assign ignoredReport = reportName.withPrefix(currentTag).forTestResult("ignored") > <#assign totalCount = testOutcomes.totalScenarios.total > <#assign successCount = testOutcomes.totalScenarios.withResult("success") > <#assign pendingCount = testOutcomes.totalScenarios.withResult("pending") > <#assign ignoredCount = testOutcomes.totalScenarios.withResult("ignored") > <#assign skippedCount = testOutcomes.totalScenarios.withResult("skipped") > <#assign abortedCount = testOutcomes.totalScenarios.withResult("aborted") > <#assign failureCount = testOutcomes.totalScenarios.withResult("failure") > <#assign errorCount = testOutcomes.totalScenarios.withResult("error") > <#assign brokenCount = failureCount + errorCount > <#assign compromisedCount = testOutcomes.totalScenarios.withResult("compromised") > <#assign badTestCount = failureCount + errorCount + compromisedCount> <#if testOutcomes.haveFlags()> | <#list testOutcomes.flags as flag> <#assign flagTitle = inflection.of(flag.message).inPluralForm().asATitle() > <#assign flagTag = "flag_${inflection.of(flag.message).asATitle()}" > <#assign flagReport = reportName.forTag(flagTag) > <#assign flagCount = testOutcomes.flagCountFor(flag)> ${flagTitle} (${flagCount})
<#if reportDurations > <#assign chartClassStyle = "col-lg-4 col-md-6 col-sm-9" > <#else> <#assign chartClassStyle = "col-lg-6 col-md-6 col-sm-12" >

Overview

<#if testOutcomes.total != 0>

Test Outcomes

<#if reportDurations >

Test Performance

<#if coverage?has_content> <#assign featureType = inflection.of(coverage[0].tagType).inPluralForm().asATitle()/>

Functional Coverage Overview

${featureType}

<@key_statistics testOutcomes=testOutcomes />
<#if coverage?has_content>

Functional Coverage Details

<#list coverage as tagCoverageByType> <#if tagCoverageByType.tagCoverage?has_content> <#if tagCoverageByType.tagCoverage?size <= 10> <#assign coverageTableClass="feature-coverage-table"> <#else> <#assign coverageTableClass="feature-coverage-table-with-pagination"> <#assign sectionTitle = inflection.of(tagCoverageByType.tagType).inPluralForm().asATitle() >

${inflection.of(tagCoverageByType.tagType).inPluralForm().asATitle()}

<#assign tagCoverageEntries = tagCoverageByType.tagCoverage /> <#list tagCoverageEntries as tagCoverage> <#if (!hideEmptyRequirements || tagCoverage.testCount != 0)>
${formatter.humanReadableFormOf(tagCoverageByType.tagType)} Scenarios StepsText Test Cases % Pass Result Coverage
<#if (!tagCoverageByType.featureNamesAreUnique && tagCoverage.parentName?has_content) > <#assign displayedTagName = formatter.breadcrumbFormat(tagCoverage.parentName, tagCoverage.tagName) /> <#else> <#assign displayedTagName = tagCoverage.tagName /> <#if tagCoverage.testCount = 0> ${displayedTagName} <#else> ${displayedTagName} ${tagCoverage.scenarioCount} ${tagCoverage.allStepsText} ${tagCoverage.testCount} ${tagCoverage.successRate} <#if tagCoverage.testCount = 0> <#else> ${tagCoverage.resultIcon}
<#list tagCoverage.coverageSegments as coverageSegment>
<#if badTestCount != 0>

Test Failure Overview

Most Frequent Failures

<#list frequentFailures as frequentFailure>
${frequentFailure.resultIcon} ${frequentFailure.name} ${frequentFailure.count}

Most Unstable Features

<#list unstableFeatures as unstableFeature>
${unstableFeature.name} ${unstableFeature.failurePercentage}%
<@tag_cloud />
<@key_statistics_two_columns testOutcomes=testOutcomes />

Automated Scenarios

<#if (automatedTestCases?has_content)> <#list automatedTestCases as scenario> <#assign outcome_icon = formatter.resultIcon().forResult(scenario.result) /> <#assign context_icon = formatter.contextIcon().forOutcome(scenario) /> <#assign context_label = formatter.contextIcon().labelForOutcome(scenario) />
${leafRequirementType} Scenario Context Steps StepsText Started Total Duration Result
<#if scenario.parentName?has_content> ${scenario.parentName} <#if (scenario.hasExamples() && scenario.getExampleOutcomes()?has_content)> ${scenario.title}
<#list scenario.getResultCounts() as resultCount> <#assign outcome_icon = formatter.resultIcon().forResult(resultCount.result) /> ${outcome_icon} ${resultCount.numberOfTestCases}
<#else> ${scenario.title} <#if (scenario.externalLink)?? && (scenario.externalLink.url)??>  
${context_icon}${context_label} ${scenario.stepCount} ${scenario.allStepsText} ${scenario.formattedStartTime} ${scenario.formattedDuration} ${outcome_icon} ${scenario.result}
<#else> No automated tests were executed

Manual Tests

<#if (manualTestCases?has_content)> <#list manualTestCases as scenario> <#assign outcome_icon = formatter.resultIcon().forResult(scenario.result) /> <#assign context_icon = formatter.contextIcon().forOutcome(scenario) /> <#assign context_label = formatter.contextIcon().labelForOutcome(scenario) /> <#if (scenario.hasExamples() && scenario.getExampleOutcomes()?has_content)> <#list scenario.getExampleOutcomes() as exampleOutcome> <#assign example_outcome_icon = formatter.resultIcon().forResult(exampleOutcome.result) /> <#else>
${leafRequirementType} Scenario Context Steps StepsText Result
<#if scenario.parentName?has_content> ${scenario.parentName} ${exampleOutcome.title} <#if exampleOutcome.hasSubtitle() >
${exampleOutcome.subtitle}
${exampleOutcome.stepCount} ${exampleOutcome.allStepsText} ${example_outcome_icon} ${exampleOutcome.result} <#if (scenario.externalLink)?? && (scenario.externalLink.url)??>  
<#if scenario.parentName?has_content> ${scenario.parentName} ${scenario.title} ${scenario.stepCount} ${scenario.allStepsText} ${outcome_icon} ${scenario.result} <#if (scenario.externalLink)?? && (scenario.externalLink.url)??>  
<#else> No manual tests were recorded
<@tag_cloud />
<#if evidence?has_content>

Evidence

<#list evidence as evidenceRecord>
Scenario Title Details
${evidenceRecord.scenario} ${evidenceRecord.title} ${evidenceRecord.detailsLink}
Serenity BDD version ${serenityVersionNumber!"SNAPSHOT-BUILD"}
<@result_chart id='resultChart' /> <@result_summary id='severityChart' /> <@duration_chart id='durationChart' /> <#if coverage?has_content> <@coverage_chart id='coverageChart' feature=coverage[0] />




© 2015 - 2025 Weber Informatics LLC | Privacy Policy