junit 5: associate published entry with test id (IDEA-216215; IDEA-227006)

GitOrigin-RevId: d52fc50f1da4a9e7425e3036bc8bbd1ea56f7bb4
This commit is contained in:
Anna.Kozlova
2020-01-03 11:04:27 +00:00
committed by intellij-monorepo-bot
parent 9bc9b064da
commit c5e0dffe28
2 changed files with 7 additions and 1 deletions
@@ -81,7 +81,7 @@ public class JUnit5TestExecutionListener implements TestExecutionListener {
StringBuilder builder = new StringBuilder();
builder.append("timestamp = ").append(entry.getTimestamp());
entry.getKeyValuePairs().forEach((key, value) -> builder.append(", ").append(key).append(" = ").append(value));
myPrintStream.println(builder.toString());
myPrintStream.println("##teamcity[testStdOut" + idAndName(testIdentifier) + " out = '" + escapeName(builder.toString()) + "']");
}
@Override
@@ -1,7 +1,9 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.junit5;
import com.intellij.openapi.util.Pair;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.util.containers.ContainerUtil;
import jetbrains.buildServer.messages.serviceMessages.MapSerializerUtil;
import org.junit.jupiter.api.*;
import org.junit.jupiter.engine.descriptor.ClassTestDescriptor;
@@ -10,6 +12,7 @@ import org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor;
import org.junit.platform.engine.TestDescriptor;
import org.junit.platform.engine.TestExecutionResult;
import org.junit.platform.engine.UniqueId;
import org.junit.platform.engine.reporting.ReportEntry;
import org.junit.platform.engine.support.descriptor.EngineDescriptor;
import org.junit.platform.launcher.TestIdentifier;
import org.junit.platform.launcher.TestPlan;
@@ -70,6 +73,8 @@ class JUnit5EventsTest {
MultipleFailuresError multipleFailuresError = new MultipleFailuresError("2 errors", Arrays.asList
(new AssertionFailedError("message1", "expected1", "actual1"),
new AssertionFailedError("message2", "expected2", "actual2")));
ReportEntry reportEntry = ReportEntry.from(ContainerUtil.newHashMap(Pair.create("key1", "value1"), Pair.create("stdout", "out1")));
myExecutionListener.reportingEntryPublished(identifier, reportEntry);
myExecutionListener.executionFinished(identifier, TestExecutionResult.failed(multipleFailuresError));
@@ -77,6 +82,7 @@ class JUnit5EventsTest {
Assertions.assertEquals("##teamcity[enteredTheMatrix]\n" +
"\n" +
"##teamcity[testStarted id='|[engine:testMethod|]' name='test1()' nodeId='|[engine:testMethod|]' parentNodeId='|[engine:testClass|]' locationHint='java:test://com.intellij.junit5.JUnit5EventsTest$TestClass/test1' metainfo='']\n" +
"##teamcity[testStdOut id='|[engine:testMethod|]' name='test1()' nodeId='|[engine:testMethod|]' parentNodeId='|[engine:testClass|]' out = 'timestamp = " + reportEntry.getTimestamp() + ", key1 = value1, stdout = out1']\n" +
"\n" +
"##teamcity[testFailed name='test1()' id='|[engine:testMethod|]' nodeId='|[engine:testMethod|]' parentNodeId='|[engine:testClass|]' message='message1|nComparison Failure: ' expected='expected1' actual='actual1' details='']\n" +
"\n" +