Skip to content

Commit 0447db6

Browse files
committed
Include media type in Open Test Report XML output
1 parent 47af824 commit 0447db6

File tree

2 files changed

+22
-5
lines changed

2 files changed

+22
-5
lines changed

junit-platform-reporting/src/main/java/org/junit/platform/reporting/open/xml/OpenTestReportGeneratingListener.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,10 @@ public void fileEntryPublished(TestIdentifier testIdentifier, FileEntry entry) {
377377
String id = inProgressIds.get(testIdentifier.getUniqueIdObject());
378378
eventsFileWriter.append(reported(id, Instant.now()), //
379379
reported -> reported.append(attachments(), attachments -> attachments.append(file(entry.getTimestamp()), //
380-
file -> file.withPath(outputDir.relativize(entry.getPath()).toString()))));
380+
file -> {
381+
file.withPath(outputDir.relativize(entry.getPath()).toString());
382+
entry.getMediaType().ifPresent(file::withMediaType);
383+
})));
381384
}
382385

383386
@Override

platform-tests/src/test/java/org/junit/platform/reporting/open/xml/OpenTestReportGeneratingListenerTests.java

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,10 @@
3737
import org.junit.jupiter.api.io.TempDir;
3838
import org.junit.jupiter.params.ParameterizedTest;
3939
import org.junit.jupiter.params.provider.ValueSource;
40+
import org.junit.platform.commons.util.ExceptionUtils;
4041
import org.junit.platform.engine.TestEngine;
4142
import org.junit.platform.engine.UniqueId;
43+
import org.junit.platform.engine.reporting.FileEntry;
4244
import org.junit.platform.engine.reporting.ReportEntry;
4345
import org.junit.platform.engine.support.hierarchical.DemoHierarchicalTestEngine;
4446
import org.junit.platform.tests.process.ProcessResult;
@@ -78,10 +80,17 @@ void restoreSystemPrintStreams() {
7880
void writesValidXmlReport(@TempDir Path tempDirectory) throws Exception {
7981
var engine = new DemoHierarchicalTestEngine("dummy");
8082
engine.addTest("failingTest", "display<-->Name 😎", (context, descriptor) -> {
81-
var listener = context.request.getEngineExecutionListener();
82-
listener.reportingEntryPublished(descriptor, ReportEntry.from("key", "value"));
83-
System.out.println("Hello, stdout!");
84-
System.err.println("Hello, stderr!");
83+
try {
84+
var listener = context.request.getEngineExecutionListener();
85+
listener.reportingEntryPublished(descriptor, ReportEntry.from("key", "value"));
86+
listener.fileEntryPublished(descriptor, FileEntry.from(
87+
Files.writeString(tempDirectory.resolve("test.txt"), "Hello, world!"), "text/plain"));
88+
System.out.println("Hello, stdout!");
89+
System.err.println("Hello, stderr!");
90+
}
91+
catch (Throwable t) {
92+
throw ExceptionUtils.throwAsUncheckedException(t);
93+
}
8594
fail("failure message");
8695
});
8796

@@ -130,6 +139,11 @@ void writesValidXmlReport(@TempDir Path tempDirectory) throws Exception {
130139
</data>
131140
</attachments>
132141
</e:reported>
142+
<e:reported id="2" time="${xmlunit.isDateTime}">
143+
<attachments>
144+
<file time="${xmlunit.isDateTime}" path="../test.txt" mediaType="text/plain" />
145+
</attachments>
146+
</e:reported>
133147
<e:reported id="2" time="${xmlunit.isDateTime}">
134148
<attachments>
135149
<output time="${xmlunit.isDateTime}" source="stdout"><![CDATA[Hello, stdout!]]></output>

0 commit comments

Comments
 (0)