コード例 #1
0
  /**
   * Summarize the last test results from the passed set of jobs, including the packages of the job.
   * If a job doesn't include any tests, add a 0 summary.
   *
   * @param jobs
   * @return
   */
  public static TestResultSummary getDetailedTestResultSummary(Collection<TopLevelItem> jobs) {
    TestResultSummary summary = new TestResultSummary();

    for (TopLevelItem item : jobs) {
      if (item instanceof Job) {
        Job job = (Job) item;

        // create summary for the last run
        Run run = job.getLastBuild();
        if (run != null) {
          TestResult testResult = TestUtil.getTestResult(job.getLastBuild());
          summary.addTestResult(testResult);

          AbstractTestResultAction tra = run.getAction(AbstractTestResultAction.class);

          if (tra != null) {
            if (tra.getResult() instanceof MetaTabulatedResult) {
              MetaTabulatedResult result = (MetaTabulatedResult) tra.getResult();

              // add test results for the packages
              for (hudson.tasks.test.TestResult child : result.getChildren()) {
                PackageResult sub =
                    new PackageResult(
                        child, child.getTotalCount(), child.getFailCount(), child.getSkipCount());
                testResult.getPackageResults().add(sub);
              }
            }
          }
        }
      }
    }

    return summary;
  }
コード例 #2
0
  /**
   * Summarize the last test results from the passed set of jobs. If a job doesn't include any
   * tests, add a 0 summary.
   *
   * @param jobs
   * @return
   */
  public static TestResultSummary getTestResultSummary(Collection<TopLevelItem> jobs) {
    TestResultSummary summary = new TestResultSummary();

    for (TopLevelItem item : jobs) {
      if (item instanceof Job) {
        Job job = (Job) item;
        boolean addBlank = true;
        TestResultProjectAction testResults = job.getAction(TestResultProjectAction.class);

        if (testResults != null) {
          AbstractTestResultAction tra = testResults.getLastTestResultAction();

          if (tra != null) {
            addBlank = false;
            summary.addTestResult(
                new TestResult(job, tra.getTotalCount(), tra.getFailCount(), tra.getSkipCount()));
          }
        } else {
          SurefireAggregatedReport surefireTestResults =
              job.getAction(SurefireAggregatedReport.class);
          if (surefireTestResults != null) {
            addBlank = false;
            summary.addTestResult(
                new TestResult(
                    job,
                    surefireTestResults.getTotalCount(),
                    surefireTestResults.getFailCount(),
                    surefireTestResults.getSkipCount()));
          }
        }

        if (addBlank) {
          Run run = job.getLastBuild();
          if (run != null) {
            TestResult testResult = getTestResult(run);
            if (testResult != null) {
              addBlank = false;
              summary.addTestResult(testResult);
            }
          }
        }

        if (addBlank) {
          summary.addTestResult(new TestResult(job, 0, 0, 0));
        }
      }
    }

    return summary;
  }
コード例 #3
0
  private void summarize(
      Map<LocalDate, TestResultSummary> summaries, Run run, LocalDate firstDay, LocalDate lastDay) {
    TestResult testResult = TestUtil.getTestResult(run);

    // for every day between first day and last day inclusive
    for (LocalDate curr = firstDay; curr.compareTo(lastDay) <= 0; curr = curr.plusDays(1)) {
      if (testResult.getTests() != 0) {
        TestResultSummary trs = summaries.get(curr);
        if (trs == null) {
          trs = new TestResultSummary();
          summaries.put(curr, trs);
        }

        trs.addTestResult(testResult);
      }
    }
  }