@Test public void should_store_zero_tests_when_directory_is_null_or_non_existing_or_a_file() throws Exception { SensorContext context = mock(SensorContext.class); parser.collect(context, null, false); verify(context, never()).newMeasure(); context = mock(SensorContext.class); parser.collect(context, getDir("nonExistingReportsDirectory"), false); verify(context, never()).newMeasure(); context = mock(SensorContext.class); parser.collect(context, getDir("file.txt"), true); verify(context, never()).newMeasure(); }
@Test public void should_register_tests() throws URISyntaxException { SensorContextTester context = SensorContextTester.create(new File("")); MutableTestCase testCase = mock(MutableTestCase.class); when(testCase.setDurationInMs(anyLong())).thenReturn(testCase); when(testCase.setStatus(any(TestCase.Status.class))).thenReturn(testCase); when(testCase.setMessage(anyString())).thenReturn(testCase); when(testCase.setStackTrace(anyString())).thenReturn(testCase); when(testCase.setType(anyString())).thenReturn(testCase); MutableTestPlan testPlan = mock(MutableTestPlan.class); when(testPlan.addTestCase(anyString())).thenReturn(testCase); when(perspectives.as( eq(MutableTestPlan.class), argThat( new ArgumentMatcher<InputFile>() { @Override public boolean matches(Object o) { if (o instanceof InputFile) { return ":ch.hortis.sonar.mvn.mc.MetricsCollectorRegistryTest" .equals(((InputFile) o).key()); } return false; } }))) .thenReturn(testPlan); parser.collect(context, getDir("multipleReports"), true); verify(testPlan).addTestCase("testGetUnKnownCollector"); verify(testPlan).addTestCase("testGetJDependsCollector"); }
// SONAR-2841: if there's only a test suite report, then it should be read. @Test public void shouldUseTestSuiteReportIfAlone() throws URISyntaxException { SensorContextTester context = mockContext(); parser.collect(context, getDir("onlyTestSuiteReport"), true); assertThat(context.measures(":org.sonar.SecondTest")).hasSize(6); assertThat(context.measures(":org.sonar.JavaNCSSCollectorTest")).hasSize(6); }
@Test public void shouldMergeNestedInnerClasses() throws URISyntaxException { SensorContextTester context = mockContext(); parser.collect(context, getDir("nestedInnerClasses"), true); assertThat( context .measure(":org.sonar.plugins.surefire.NestedInnerTest", CoreMetrics.TESTS) .value()) .isEqualTo(3); }
@Test public void shouldAggregateReports() throws URISyntaxException { SensorContextTester context = mockContext(); parser.collect(context, getDir("multipleReports"), true); assertThat(context.measures(":ch.hortis.sonar.mvn.mc.MetricsCollectorRegistryTest")).hasSize(6); assertThat(context.measures(":ch.hortis.sonar.mvn.mc.CloverCollectorTest")).hasSize(6); assertThat(context.measures(":ch.hortis.sonar.mvn.mc.CheckstyleCollectorTest")).hasSize(6); assertThat(context.measures(":ch.hortis.sonar.mvn.SonarMojoTest")).hasSize(6); assertThat(context.measures(":ch.hortis.sonar.mvn.mc.JDependsCollectorTest")).hasSize(6); assertThat(context.measures(":ch.hortis.sonar.mvn.mc.JavaNCSSCollectorTest")).hasSize(6); }
@Test public void should_not_count_negative_tests() throws URISyntaxException { SensorContextTester context = mockContext(); parser.collect(context, getDir("negativeTestTime"), true); // Test times : -1.120, 0.644, 0.015 -> computed time : 0.659, ignore negative time. assertThat(context.measure(":java.Foo", CoreMetrics.SKIPPED_TESTS).value()).isEqualTo(0); assertThat(context.measure(":java.Foo", CoreMetrics.TESTS).value()).isEqualTo(6); assertThat(context.measure(":java.Foo", CoreMetrics.TEST_ERRORS).value()).isEqualTo(0); assertThat(context.measure(":java.Foo", CoreMetrics.TEST_FAILURES).value()).isEqualTo(0); assertThat(context.measure(":java.Foo", CoreMetrics.TEST_EXECUTION_TIME).value()) .isEqualTo(659); }
@Test public void shouldMergeInnerClasses() throws URISyntaxException { SensorContextTester context = mockContext(); parser.collect(context, getDir("innerClasses"), true); assertThat( context .measure( ":org.apache.commons.collections.bidimap.AbstractTestBidiMap", CoreMetrics.TESTS) .value()) .isEqualTo(7); assertThat( context .measure( ":org.apache.commons.collections.bidimap.AbstractTestBidiMap", CoreMetrics.TEST_ERRORS) .value()) .isEqualTo(1); assertThat( context.measures( ":org.apache.commons.collections.bidimap.AbstractTestBidiMap$TestBidiMapEntrySet")) .isEmpty(); }
@Test public void shouldNotInsertZeroOnFiles() throws URISyntaxException { SensorContext context = mock(SensorContext.class); parser.collect(context, getDir("noTests"), true); verify(context, never()).newMeasure(); }