diff options
author | Daniel Schwarz <daniel.schwarz@sonarsource.com> | 2017-09-28 11:12:27 +0200 |
---|---|---|
committer | Daniel Schwarz <bartfastiel@users.noreply.github.com> | 2017-09-29 15:32:54 +0200 |
commit | 7ed56e46b7c153dde7647368b5381b676f84a41e (patch) | |
tree | f26908e079edd9636d037d3debb9254468f1d8da /server | |
parent | 451c00462f77778d5ca3972da4ca86d3ceee086f (diff) | |
download | sonarqube-7ed56e46b7c153dde7647368b5381b676f84a41e.tar.gz sonarqube-7ed56e46b7c153dde7647368b5381b676f84a41e.zip |
SONAR-9353 let the built-in quality gate check duplicated lines on new code
The built-in quality gate "SonarQube Way" now checks, that the percentage of duplicated lines on new code is less or equal to 3%.
Diffstat (limited to 'server')
2 files changed, 7 insertions, 1 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/RegisterQualityGates.java b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/RegisterQualityGates.java index 8c30643ff65..24f161e79dd 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/RegisterQualityGates.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/RegisterQualityGates.java @@ -28,6 +28,7 @@ import org.sonar.db.qualitygate.QualityGateDto; import org.sonar.server.computation.task.projectanalysis.qualitymodel.RatingGrid; import static org.sonar.api.measures.CoreMetrics.NEW_COVERAGE_KEY; +import static org.sonar.api.measures.CoreMetrics.NEW_DUPLICATED_LINES_DENSITY_KEY; import static org.sonar.api.measures.CoreMetrics.NEW_MAINTAINABILITY_RATING_KEY; import static org.sonar.api.measures.CoreMetrics.NEW_RELIABILITY_RATING_KEY; import static org.sonar.api.measures.CoreMetrics.NEW_SECURITY_RATING_KEY; @@ -85,6 +86,8 @@ public class RegisterQualityGates implements Startable { NEW_MAINTAINABILITY_RATING_KEY, OPERATOR_GREATER_THAN, null, ratingAValue, LEAK_PERIOD); qualityGateConditionsUpdater.createCondition(dbSession, builtin.getId(), NEW_COVERAGE_KEY, OPERATOR_LESS_THAN, null, "80", LEAK_PERIOD); + qualityGateConditionsUpdater.createCondition(dbSession, builtin.getId(), + NEW_DUPLICATED_LINES_DENSITY_KEY, OPERATOR_GREATER_THAN, null, "3", LEAK_PERIOD); qualityGates.setDefault(dbSession, builtin.getId()); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/qualitygate/RegisterQualityGatesTest.java b/server/sonar-server/src/test/java/org/sonar/server/qualitygate/RegisterQualityGatesTest.java index b7562a23429..5e3900543d0 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/qualitygate/RegisterQualityGatesTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/qualitygate/RegisterQualityGatesTest.java @@ -38,6 +38,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyZeroInteractions; import static org.sonar.api.measures.CoreMetrics.NEW_COVERAGE_KEY; +import static org.sonar.api.measures.CoreMetrics.NEW_DUPLICATED_LINES_DENSITY_KEY; import static org.sonar.api.measures.CoreMetrics.NEW_MAINTAINABILITY_RATING_KEY; import static org.sonar.api.measures.CoreMetrics.NEW_RELIABILITY_RATING_KEY; import static org.sonar.api.measures.CoreMetrics.NEW_SECURITY_RATING_KEY; @@ -68,6 +69,7 @@ public class RegisterQualityGatesTest { MetricDto newSecurity = dbClient.metricDao().insert(dbSession, newMetricDto().setKey(NEW_SECURITY_RATING_KEY).setValueType(INT.name()).setHidden(false)); MetricDto newMaintainability = dbClient.metricDao().insert(dbSession, newMetricDto().setKey(NEW_MAINTAINABILITY_RATING_KEY).setValueType(PERCENT.name()).setHidden(false)); MetricDto newCoverage = dbClient.metricDao().insert(dbSession, newMetricDto().setKey(NEW_COVERAGE_KEY).setValueType(PERCENT.name()).setHidden(false)); + MetricDto newDuplication = dbClient.metricDao().insert(dbSession, newMetricDto().setKey(NEW_DUPLICATED_LINES_DENSITY_KEY).setValueType(PERCENT.name()).setHidden(false)); dbSession.commit(); task.start(); @@ -82,7 +84,8 @@ public class RegisterQualityGatesTest { tuple(newReliability.getId().longValue(), OPERATOR_GREATER_THAN, null, "1", 1), tuple(newSecurity.getId().longValue(), OPERATOR_GREATER_THAN, null, "1", 1), tuple(newMaintainability.getId().longValue(), OPERATOR_GREATER_THAN, null, "1", 1), - tuple(newCoverage.getId().longValue(), OPERATOR_LESS_THAN, null, "80", 1)); + tuple(newCoverage.getId().longValue(), OPERATOR_LESS_THAN, null, "80", 1), + tuple(newDuplication.getId().longValue(), OPERATOR_GREATER_THAN, null, "3", 1)); verify(qualityGates).setDefault(any(DbSession.class), anyLong()); task.stop(); |