private void convert(final Supplier<String> uidGenerator, final Path resultsDirectory, final ResultsVisitor visitor, final List<TestResultContainer> groups, final TestResult result) { final io.qameta.allure.entity.TestResult dest = new io.qameta.allure.entity.TestResult(); dest.setUid(uidGenerator.get()); dest.setHistoryId(result.getHistoryId()); dest.setFullName(result.getFullName()); dest.setName(firstNonNull(result.getName(), result.getFullName(), "Unknown test")); dest.setTime(Time.create(result.getStart(), result.getStop())); dest.setDescription(result.getDescription()); dest.setDescriptionHtml(result.getDescriptionHtml()); dest.setStatus(convert(result.getStatus())); Optional.ofNullable(result.getStatusDetails()).ifPresent(details -> { dest.setStatusMessage(details.getMessage()); dest.setStatusTrace(details.getTrace()); }); dest.setLinks(convert(result.getLinks(), this::convert)); dest.setLabels(convert(result.getLabels(), this::convert)); dest.setParameters(getParameters(result)); dest.addLabelIfNotExists(RESULT_FORMAT, ALLURE2_RESULTS_FORMAT); if (hasTestStage(result)) { dest.setTestStage(getTestStage(resultsDirectory, visitor, result)); } final List<TestResultContainer> parents = findAllParents(groups, result.getUuid(), new HashSet<>()); dest.getBeforeStages().addAll(getStages(parents, fixture -> getBefore(resultsDirectory, visitor, fixture))); dest.getAfterStages().addAll(getStages(parents, fixture -> getAfter(resultsDirectory, visitor, fixture))); visitor.visitTestResult(dest); }
public TestResult withLinks(Link... values) { if (values!= null) { for (Link value: values) { getLinks().add(value); } } return this; }
public TestResult withLinks(Collection<Link> values) { if (values!= null) { getLinks().addAll(values); } return this; }
/** * @deprecated use {@link #getLinks()} and {@link Collection#addAll(Collection)} instead. */ @Deprecated @JsonIgnore public TestResult setLinks(final Collection<Link> values) { if (values != null) { getLinks().addAll(values); } return this; }
/** * @deprecated use {@link #getLinks()} and {@link Collection#addAll(Collection)} instead. */ @Deprecated @JsonIgnore public TestResult setLinks(final Link... values) { if (values != null) { for (Link value : values) { getLinks().add(value); } } return this; }
/** * @deprecated use {@link #link(String, String, String)} instead. */ @Deprecated public static void addLinks(final Link... links) { getLifecycle().updateTestCase(testResult -> testResult.getLinks().addAll(asList(links))); }
/** * Adds link to current test or step (or fixture) if any. Takes no effect * if no test run at the moment. * * @param name the name of link. * @param type the type of link, used to display link icon in the report. * @param url the link's url. */ public static void link(final String name, final String type, final String url) { final Link link = new Link().setName(name).setType(type).setUrl(url); getLifecycle().updateTestCase(testResult -> testResult.getLinks().add(link)); }
private TestResult createTestResult(final String uuid, final Description description) { final String className = description.getClassName(); final String methodName = description.getMethodName(); final String name = Objects.nonNull(methodName) ? methodName : className; final String fullName = Objects.nonNull(methodName) ? String.format("%s.%s", className, methodName) : className; final String suite = Optional.ofNullable(description.getTestClass()) .map(it -> it.getAnnotation(DisplayName.class)) .map(DisplayName::value).orElse(className); final TestResult testResult = new TestResult() .setUuid(uuid) .setHistoryId(getHistoryId(description)) .setFullName(fullName) .setName(name); testResult.getLabels().addAll(getProvidedLabels()); testResult.getLabels().addAll(Arrays.asList( createPackageLabel(getPackage(description.getTestClass())), createTestClassLabel(className), createTestMethodLabel(name), createSuiteLabel(suite), createHostLabel(), createThreadLabel(), createFrameworkLabel("junit4"), createLanguageLabel("java") )); testResult.getLabels().addAll(getLabels(description)); testResult.getLinks().addAll(getLinks(description)); getDisplayName(description).ifPresent(testResult::setName); getDescription(description).ifPresent(testResult::setDescription); return testResult; }
private void convert(final Supplier<String> uidGenerator, final Path resultsDirectory, final ResultsVisitor visitor, final List<TestResultContainer> groups, final TestResult result) { final io.qameta.allure.entity.TestResult dest = new io.qameta.allure.entity.TestResult(); dest.setUid(uidGenerator.get()); dest.setHistoryId(result.getHistoryId()); dest.setFullName(result.getFullName()); dest.setName(firstNonNull(result.getName(), result.getFullName(), "Unknown test")); dest.setTime(Time.create(result.getStart(), result.getStop())); dest.setDescription(result.getDescription()); dest.setDescriptionHtml(result.getDescriptionHtml()); dest.setStatus(convert(result.getStatus())); Optional.ofNullable(result.getStatusDetails()).ifPresent(details -> { dest.setStatusMessage(details.getMessage()); dest.setStatusTrace(details.getTrace()); }); dest.setLinks(convert(result.getLinks(), this::convert)); dest.setLabels(convert(result.getLabels(), this::convert)); dest.setParameters(getParameters(result)); dest.addLabelIfNotExists(RESULT_FORMAT, ALLURE2_RESULTS_FORMAT); if (hasTestStage(result)) { dest.setTestStage(getTestStage(resultsDirectory, visitor, result)); } final List<TestResultContainer> parents = findAllParents(groups, result.getUuid(), new HashSet<>()); dest.getBeforeStages().addAll(getStages(parents, fixture -> getBefore(resultsDirectory, visitor, fixture))); dest.getAfterStages().addAll(getStages(parents, fixture -> getAfter(resultsDirectory, visitor, fixture))); visitor.visitTestResult(dest); }