Skip to content

Commit ff84c6a

Browse files
vilchik-elenapynicolas
authored andcommitted
SONARPY-134 Change the default mode for unit test result import
1 parent 1b14c2a commit ff84c6a

4 files changed

Lines changed: 19 additions & 34 deletions

File tree

its/plugin/src/test/java/com/sonar/python/it/plugin/TestReportTest.java

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,13 @@
2626
import com.sonar.orchestrator.Orchestrator;
2727
import com.sonar.orchestrator.build.BuildResult;
2828
import com.sonar.orchestrator.build.SonarRunner;
29-
30-
import org.junit.Before;
31-
import org.junit.ClassRule;
32-
import org.junit.Test;
33-
3429
import java.io.File;
30+
import java.util.HashMap;
3531
import java.util.Map;
3632
import java.util.Set;
33+
import org.junit.Before;
34+
import org.junit.ClassRule;
35+
import org.junit.Test;
3736

3837
import static com.sonar.python.it.plugin.Tests.assertProjectMeasures;
3938
import static org.fest.assertions.Assertions.assertThat;
@@ -58,7 +57,8 @@ private SonarRunner createBuild(String testReportPath) {
5857

5958
@Test
6059
public void import_report() throws Exception {
61-
orchestrator.executeBuild(createBuild("nosetests.xml").setProperty("sonar.python.xunit.skipDetails", "false"));
60+
// sonar.python.xunit.skipDetails=false by default
61+
orchestrator.executeBuild(createBuild("nosetests.xml"));
6262
assertProjectMeasures(PROJECT, new ImmutableMap.Builder<String, Integer>()
6363
.put("tests", 3)
6464
.put("test_failures", 1)
@@ -72,13 +72,15 @@ public void import_report() throws Exception {
7272
@Test
7373
public void simple_mode() throws Exception {
7474
orchestrator.executeBuild(createBuild("nosetests.xml").setProperty("sonar.python.xunit.skipDetails", "true"));
75-
assertProjectMeasures(PROJECT, new ImmutableMap.Builder<String, Integer>()
76-
.put("tests", 3)
77-
.put("test_failures", 1)
78-
.put("test_errors", 1)
79-
.put("skipped_tests", 1)
80-
.put("test_execution_time", 1)
81-
.build());
75+
Map<String, Integer> values = new HashMap<>();
76+
values.put("tests", 3);
77+
values.put("test_failures", 1);
78+
values.put("test_errors", 1);
79+
values.put("skipped_tests", 1);
80+
values.put("test_execution_time", 1);
81+
values.put("test_success_density", null);
82+
83+
assertProjectMeasures(PROJECT, values);
8284
}
8385

8486
@Test

sonar-python-plugin/src/main/java/org/sonar/plugins/python/PythonPlugin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ public List getExtensions() {
9494
.description("If 'true', provides the test execution statistics only on project level, but makes the import procedure more mature")
9595
.subCategory(TEST_AND_COVERAGE)
9696
.onQualifiers(Qualifiers.PROJECT)
97-
.defaultValue("true")
97+
.defaultValue("false")
9898
.type(PropertyType.BOOLEAN)
9999
.build(),
100100
PropertyDefinition.builder(PythonXUnitSensor.REPORT_PATH_KEY)

sonar-python-plugin/src/main/java/org/sonar/plugins/python/xunit/PythonXUnitSensor.java

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
import org.sonar.api.config.Settings;
3737
import org.sonar.api.measures.CoreMetrics;
3838
import org.sonar.api.measures.Measure;
39-
import org.sonar.api.utils.ParsingUtils;
4039
import org.sonar.api.utils.StaxParser;
4140
import org.sonar.plugins.python.PythonReportSensor;
4241

@@ -46,7 +45,6 @@ public class PythonXUnitSensor extends PythonReportSensor {
4645
public static final String REPORT_PATH_KEY = "sonar.python.xunit.reportPath";
4746
public static final String DEFAULT_REPORT_PATH = "xunit-reports/xunit-result-*.xml";
4847
public static final String SKIP_DETAILS = "sonar.python.xunit.skipDetails";
49-
private static final double PERCENT_BASE = 100d;
5048

5149
public PythonXUnitSensor(Settings conf, FileSystem fileSystem) {
5250
super(conf, fileSystem);
@@ -97,10 +95,6 @@ private static void simpleMode(final SensorContext context, List<File> reports)
9795
}
9896

9997
if (testsCount > 0) {
100-
double testsPassed = testsCount - testsErrors - testsFailures;
101-
double successDensity = testsPassed * PERCENT_BASE / testsCount;
102-
context.saveMeasure(CoreMetrics.TEST_SUCCESS_DENSITY, ParsingUtils.scaleValue(successDensity));
103-
10498
context.saveMeasure(CoreMetrics.TESTS, testsCount);
10599
context.saveMeasure(CoreMetrics.SKIPPED_TESTS, testsSkipped);
106100
context.saveMeasure(CoreMetrics.TEST_ERRORS, testsErrors);
@@ -133,13 +127,6 @@ private void processReportDetailed(SensorContext context, Collection<TestSuite>
133127
context.saveMeasure(inputFile, CoreMetrics.TEST_ERRORS, (double) fileReport.getErrors());
134128
context.saveMeasure(inputFile, CoreMetrics.TEST_FAILURES, (double) fileReport.getFailures());
135129
context.saveMeasure(inputFile, CoreMetrics.TEST_EXECUTION_TIME, (double) fileReport.getTime());
136-
137-
double testsRun = (double)fileReport.getTests() - fileReport.getSkipped();
138-
if (testsRun > 0) {
139-
double passedTests = (double)fileReport.getTests() - fileReport.getErrors() - fileReport.getFailures() - fileReport.getSkipped();
140-
double successDensity = passedTests * PERCENT_BASE / testsRun;
141-
context.saveMeasure(inputFile, CoreMetrics.TEST_SUCCESS_DENSITY, ParsingUtils.scaleValue(successDensity));
142-
}
143130
context.saveMeasure(inputFile, new Measure(CoreMetrics.TEST_DATA, fileReport.getDetails()));
144131
}
145132
}
@@ -171,10 +158,10 @@ private Collection<TestSuite> lookupResources(Collection<TestSuite> testReports)
171158
for (TestSuite report : testReports) {
172159
String fileKey = report.getKey();
173160

174-
LOG.debug("Trying to find a SonarQube resource for '{}' ...", fileKey);
161+
LOG.debug("Trying to find a SonarQube resource for '{}'", fileKey);
175162
InputFile inputFile = findResource(fileKey);
176163
if (inputFile != null) {
177-
LOG.debug("... found! The resource is '{}'", inputFile);
164+
LOG.debug("The resource was found '{}'", inputFile);
178165

179166
TestSuite summaryReport = locatedReports.get(inputFile.absolutePath());
180167
if (summaryReport != null) {
@@ -184,7 +171,7 @@ private Collection<TestSuite> lookupResources(Collection<TestSuite> testReports)
184171
locatedReports.put(inputFile.absolutePath(), report);
185172
}
186173
} else {
187-
LOG.debug("... cannot find the resource for '{}', drilling down to the details of this test wont be possible", fileKey);
174+
LOG.warn("The resource for '{}' is not found, drilling down to the details of this test won't be possible", fileKey);
188175
}
189176
}
190177

sonar-python-plugin/src/test/java/org/sonar/plugins/python/xunit/PythonXUnitSensorTest.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,6 @@ public void shouldSaveCorrectMeasures() {
8585
verify(context).saveMeasure(testFile2, CoreMetrics.TEST_FAILURES, 1.);
8686
verify(context).saveMeasure(testFile1, CoreMetrics.TEST_FAILURES, 0.);
8787

88-
verify(context).saveMeasure(eq(testFile1), eq(CoreMetrics.TEST_SUCCESS_DENSITY), anyDouble());
89-
verify(context).saveMeasure(eq(testFile2), eq(CoreMetrics.TEST_SUCCESS_DENSITY), anyDouble());
90-
9188
verify(context, times(2)).saveMeasure(eq(testFile1), any(Measure.class));
9289
verify(context).saveMeasure(eq(testFile2), any(Measure.class));
9390
}
@@ -99,7 +96,6 @@ public void shouldSaveCorrectMeasuresSimpleMode() {
9996
fs.add(new DefaultInputFile("", "tests/dir/test_sample.py"));
10097
sensor.analyse(project, context);
10198

102-
verify(context).saveMeasure(eq(CoreMetrics.TEST_SUCCESS_DENSITY), anyDouble());
10399
// includes test with not found file
104100
verify(context).saveMeasure(CoreMetrics.TESTS, 7.);
105101
verify(context).saveMeasure(CoreMetrics.SKIPPED_TESTS, 2.);

0 commit comments

Comments
 (0)