@Override
  public void execute(ComputationStep.Context context) {
    Metric qProfilesMetric = metricRepository.getByKey(CoreMetrics.QUALITY_PROFILES_KEY);
    new PathAwareCrawler<>(new QProfileAggregationComponentVisitor(qProfilesMetric))
      .visit(treeRootHolder.getRoot());
  }
@Test
  public void fail_if_report_inconsistent() {
    treeRootHolder.setRoot(MULTI_MODULE_PROJECT);
    QualityProfile qpJava = createQProfile(QP_NAME_1, LANGUAGE_KEY_1);
    analysisMetadataHolder.setQProfilesByLanguage(ImmutableMap.of(LANGUAGE_KEY_1, qpJava));

    try {
      underTest.execute(new TestComputationStepContext());
      fail("Expected exception");
    } catch (Exception e) {
      assertThat(e).hasCause(new IllegalStateException("Report contains a file with language 'php' but no matching quality profile"));
    }

  }