@Test public void shouldExportTestResultToJira() { final LaunchResults launchResults = mock(LaunchResults.class); final TestResult testResult = new TestResult() .setLabels(Collections.singletonList(new Label().setName("testClass").setValue(TEST_CLASS))); final Set<TestResult> results = new HashSet<>(Collections.singletonList(testResult)); when(launchResults.getAllResults()).thenReturn(results); final IdeaLinksPlugin jiraTestResultExportPlugin = new IdeaLinksPlugin(); jiraTestResultExportPlugin.aggregate( mock(Configuration.class), Collections.singletonList(launchResults), Paths.get("/") ); assertThat(testResult.getLinks()).hasSize(1); final Link link = testResult.getLinks().get(0); assertThat(link.getName()).isEqualTo("Open in Idea"); assertThat(link.getType()).isEqualTo("idea"); assertThat(link.getUrl()).contains(TEST_CLASS.replace(".", "/")); }
private List<LaunchResults> getSimpleLaunchResults() { final TestResult first = new TestResult() .setName("first") .setLabels(singletonList(new Label().setName("suite").setValue("s1"))); final TestResult second = new TestResult() .setName("second") .setLabels(singletonList(new Label().setName("suite").setValue("s1"))); final TestResult third = new TestResult() .setName("third") .setLabels(singletonList(new Label().setName("suite").setValue("s2"))); return createSingleLaunchResults(second, first, third); } }
set.addAll(convert(testSuite.getLabels(), this::convert)); set.addAll(convert(source.getLabels(), this::convert)); dest.setLabels(new ArrayList<>(set)); dest.findAllLabels(ISSUE).forEach(issue -> dest.getLinks().add(getLink(ISSUE, issue, getIssueUrl(issue, properties)))
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); }
set.addAll(convert(testSuite.getLabels(), this::convert)); set.addAll(convert(source.getLabels(), this::convert)); dest.setLabels(new ArrayList<>(set)); dest.findAllLabels(ISSUE).forEach(issue -> dest.getLinks().add(getLink(ISSUE, issue, getIssueUrl(issue, properties)))
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); }