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

com.github.mkolisnyk.cucumber.reporting.CucumberResultsOverview Maven / Gradle / Ivy

There is a newer version: 1.3.5
Show newest version
package com.github.mkolisnyk.cucumber.reporting;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Locale;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;

import com.github.mkolisnyk.cucumber.reporting.types.result.CucumberFeatureResult;
import com.github.mkolisnyk.cucumber.reporting.types.result.CucumberScenarioResult;
import com.github.mkolisnyk.cucumber.reporting.utils.drawers.PieChartDrawer;

public class CucumberResultsOverview extends CucumberResultsCommon {

    protected String getReportBase() throws IOException {
        InputStream is = this.getClass().getResourceAsStream("/feature-overview-tmpl.html");
        String result = IOUtils.toString(is);
        return result;
    }

    @Override
    public int[][] getStatuses(CucumberFeatureResult[] results) {
        int[][] statuses = {{0, 0, 0}, {0, 0, 0}};
        for (CucumberFeatureResult result : results) {
            if (result.getStatus().trim().equalsIgnoreCase("passed")) {
                statuses[0][0]++;
            } else if (result.getStatus().trim().equalsIgnoreCase("failed")) {
                statuses[0][1]++;
            } else {
                statuses[0][2]++;
            }
            for (CucumberScenarioResult element : result.getElements()) {
                if (element.getStatus().trim().equalsIgnoreCase("passed")) {
                    statuses[1][0]++;
                } else if (element.getStatus().trim().equalsIgnoreCase("failed")) {
                    statuses[1][1]++;
                } else {
                    statuses[1][2]++;
                }
            }
        }
        return statuses;
    }
    protected String generateFeatureOverview(CucumberFeatureResult[] results) throws IOException {
        String content = this.getReportBase();
        content = content.replaceAll("__TITLE__", "Features Overview");
        String reportContent = "";

        reportContent += "

Features Status

" + ""; for (CucumberFeatureResult result : results) { reportContent += String.format(Locale.US, "", result.getStatus(), result.getName(), result.getStatus(), result.getPassed(), result.getFailed(), result.getUndefined() + result.getSkipped(), result.getDuration()); } reportContent += "
Feature NameStatusPassedFailedUndefinedDuration
%s%s%d%d%d%.2fs
"; reportContent += "

Scenario Status

" + "" + "" + "" + "" + "" + "" + "" + ""; int[][] statuses = this.getStatuses(results); int[] featureStatuses = statuses[0]; int[] scenarioStatuses = statuses[1]; for (CucumberFeatureResult result : results) { for (CucumberScenarioResult element : result.getElements()) { reportContent += String.format(Locale.US, "" + "" + "" + "", element.getStatus(), result.getName(), element.getName(), element.getStatus(), element.getPassed(), element.getFailed(), element.getUndefined() + element.getSkipped(), element.getRerunAttempts(), element.getDuration()); } } reportContent += "
Feature NameScenarioStatusPassedFailedUndefinedRetriesDuration
%s%s%s%d%d%d%d%.2fs
"; content = content.replaceAll("__REPORT__", reportContent); PieChartDrawer pieChart = new PieChartDrawer(); content = content.replaceAll("__FEATURE_DATA__", pieChart.generatePieChart( CHART_WIDTH, CHART_HEIGHT, featureStatuses, new String[]{"Passed", "Failed", "Undefined"}, new String[]{"green", "red", "silver"}, new String[]{"darkgreen", "darkred", "darkgray"}, CHART_THICKNESS, 2)); content = content.replaceAll("__SCENARIO_DATA__", pieChart.generatePieChart( CHART_WIDTH, CHART_HEIGHT, scenarioStatuses, new String[]{"Passed", "Failed", "Undefined"}, new String[]{"green", "red", "silver"}, new String[]{"darkgreen", "darkred", "darkgray"}, CHART_THICKNESS, 2)); return content; } public void executeOverviewReport(String reportSuffix) throws Exception { executeOverviewReport(reportSuffix, false); } public void executeOverviewReport(String reportSuffix, boolean toPdf) throws Exception { CucumberFeatureResult[] features = readFileContent(true); File outFile = new File( this.getOutputDirectory() + File.separator + this.getOutputName() + "-" + reportSuffix + ".html"); FileUtils.writeStringToFile(outFile, generateFeatureOverview(features)); if (toPdf) { this.exportToPDF(outFile, reportSuffix); } try { outFile = new File( this.getOutputDirectory() + File.separator + this.getOutputName() + "-" + reportSuffix + "-dump.xml"); this.dumpOverviewStats(outFile, features); } catch (Throwable e) { e.printStackTrace(); return; } } public void executeFeaturesOverviewReport() throws Exception { executeFeaturesOverviewReport(false); } public void executeFeaturesOverviewReport(boolean toPDF) throws Exception { executeOverviewReport("feature-overview", toPDF); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy