/*
* Sonar JaCoCo Plugin
* Copyright (C) 2010 SonarSource
* dev@sonar.codehaus.org
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02
*/
package org.sonar.plugins.jacoco.itcoverage;
import org.sonar.api.measures.Metric;
import org.sonar.api.measures.Metrics;
import org.sonar.api.measures.SumChildValuesFormula;
import java.util.Arrays;
import java.util.List;
/**
* Should be in {@link org.sonar.api.measures.CoreMetrics}
*
* @author Evgeny Mandrikov
*/
public final class JaCoCoItMetrics implements Metrics {
public static final String DOMAIN_IT_TESTS = "Integration Tests";
public static final String IT_COVERAGE_KEY = "it_coverage";
public static final Metric IT_COVERAGE = new Metric.Builder(IT_COVERAGE_KEY, "IT Coverage", Metric.ValueType.PERCENT)
.setDescription("Coverage by integration tests")
.setDirection(Metric.DIRECTION_BETTER)
.setQualitative(true)
.setDomain(DOMAIN_IT_TESTS)
.setWorstValue(0.0)
.setBestValue(100.0)
.create();
public static final String IT_LINES_TO_COVER_KEY = "it_lines_to_cover";
public static final Metric IT_LINES_TO_COVER = new Metric.Builder(IT_LINES_TO_COVER_KEY, "IT lines to cover", Metric.ValueType.INT)
.setDescription("IT lines to cover")
.setDirection(Metric.DIRECTION_BETTER)
.setDomain(DOMAIN_IT_TESTS)
.setQualitative(false)
.setFormula(new SumChildValuesFormula(false))
.setHidden(true)
.create();
public static final String IT_UNCOVERED_LINES_KEY = "it_uncovered_lines";
public static final Metric IT_UNCOVERED_LINES = new Metric.Builder(IT_UNCOVERED_LINES_KEY, "IT uncovered lines", Metric.ValueType.INT)
.setDescription("IT uncovered lines")
.setDirection(Metric.DIRECTION_WORST)
.setQualitative(false)
.setDomain(DOMAIN_IT_TESTS)
.setFormula(new SumChildValuesFormula(false))
.create();
public static final String IT_LINE_COVERAGE_KEY = "it_line_coverage";
public static final Metric IT_LINE_COVERAGE = new Metric.Builder(IT_LINE_COVERAGE_KEY, "IT line coverage", Metric.ValueType.PERCENT)
.setDescription("IT line coverage")
.setDirection(Metric.DIRECTION_BETTER)
.setQualitative(true)
.setDomain(DOMAIN_IT_TESTS)
.create();
public static final String IT_COVERAGE_LINE_HITS_DATA_KEY = "it_coverage_line_hits_data";
public static final Metric IT_COVERAGE_LINE_HITS_DATA = new Metric.Builder(IT_COVERAGE_LINE_HITS_DATA_KEY, "IT Coverage hits data", Metric.ValueType.DATA)
.setDescription("IT Code coverage line hits data")
.setDirection(Metric.DIRECTION_NONE)
.setQualitative(false)
.setDomain(DOMAIN_IT_TESTS)
.create();
public static final String IT_CONDITIONS_TO_COVER_KEY = "it_conditions_to_cover";
public static final Metric IT_CONDITIONS_TO_COVER = new Metric.Builder(IT_CONDITIONS_TO_COVER_KEY, "IT Conditions to cover", Metric.ValueType.INT)
.setDescription("IT Conditions to cover")
.setDirection(Metric.DIRECTION_BETTER)
.setQualitative(false)
.setDomain(DOMAIN_IT_TESTS)
.setFormula(new SumChildValuesFormula(false))
.setHidden(true)
.create();
public static final String IT_UNCOVERED_CONDITIONS_KEY = "it_uncovered_conditions";
public static final Metric IT_UNCOVERED_CONDITIONS = new Metric.Builder(IT_UNCOVERED_CONDITIONS_KEY, "IT Uncovered conditions", Metric.ValueType.INT)
.setDescription("IT Uncovered conditions")
.setDirection(Metric.DIRECTION_WORST)
.setDomain(DOMAIN_IT_TESTS)
.setFormula(new SumChildValuesFormula(false))
.create();
public static final String IT_BRANCH_COVERAGE_KEY = "it_branch_coverage";
public static final Metric IT_BRANCH_COVERAGE = new Metric.Builder(IT_BRANCH_COVERAGE_KEY, "IT Branch coverage", Metric.ValueType.PERCENT)
.setDescription("IT Branch coverage")
.setDirection(Metric.DIRECTION_BETTER)
.setQualitative(true)
.setDomain(DOMAIN_IT_TESTS)
.setWorstValue(0.0)
.setBestValue(100.0)
.create();
public static final String IT_CONDITIONS_BY_LINE_KEY = "it_conditions_by_line";
public static final Metric IT_CONDITIONS_BY_LINE = new Metric.Builder(IT_CONDITIONS_BY_LINE_KEY, "IT Conditions by line", Metric.ValueType.DATA)
.setDomain(DOMAIN_IT_TESTS)
.create();
public static final String IT_COVERED_CONDITIONS_BY_LINE_KEY = "it_covered_conditions_by_line";
public static final Metric IT_COVERED_CONDITIONS_BY_LINE = new Metric.Builder(IT_COVERED_CONDITIONS_BY_LINE_KEY, "IT Covered conditions by line", Metric.ValueType.DATA)
.setDomain(DOMAIN_IT_TESTS)
.create();
public List<Metric> getMetrics() {
return Arrays.asList(IT_COVERAGE, IT_LINES_TO_COVER, IT_UNCOVERED_LINES, IT_LINE_COVERAGE, IT_COVERAGE_LINE_HITS_DATA,
IT_CONDITIONS_TO_COVER, IT_UNCOVERED_CONDITIONS, IT_BRANCH_COVERAGE,
IT_CONDITIONS_BY_LINE, IT_COVERED_CONDITIONS_BY_LINE);
}
}