diff --git a/src/Microsoft.TestPlatform.Common/DataCollection/DataCollectionAttachmentManager.cs b/src/Microsoft.TestPlatform.Common/DataCollection/DataCollectionAttachmentManager.cs index 953c79974c..29e7325482 100644 --- a/src/Microsoft.TestPlatform.Common/DataCollection/DataCollectionAttachmentManager.cs +++ b/src/Microsoft.TestPlatform.Common/DataCollection/DataCollectionAttachmentManager.cs @@ -328,11 +328,9 @@ private void AddNewFileTransfer(FileTransferInformation fileTransferInfo, AsyncC { if (t.Exception == null) { - // Uri doesn't recognize file paths in unix. See https://github.com/dotnet/corefx/issues/1745 - var attachmentUri = new UriBuilder() { Scheme = "file", Host = "", Path = localFilePath }.Uri; lock (attachmentTaskLock) { - this.AttachmentSets[fileTransferInfo.Context][uri].Attachments.Add(new UriDataAttachment(attachmentUri, fileTransferInfo.Description)); + this.AttachmentSets[fileTransferInfo.Context][uri].Attachments.Add(UriDataAttachment.CreateFrom(localFilePath, fileTransferInfo.Description)); } } diff --git a/src/Microsoft.TestPlatform.ObjectModel/AttachmentSet.cs b/src/Microsoft.TestPlatform.ObjectModel/AttachmentSet.cs index 3f2b043b90..3cdd52665a 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/AttachmentSet.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/AttachmentSet.cs @@ -77,5 +77,11 @@ public override string ToString() { return $"{nameof(Uri)}: {Uri.AbsoluteUri}, {nameof(Description)}: {Description}"; } + + public static UriDataAttachment CreateFrom(string localFilePath, string description) + { + var uri = new UriBuilder() { Scheme = "file", Host = "", Path = localFilePath }.Uri; + return new UriDataAttachment(uri, description); + } } } diff --git a/src/Microsoft.TestPlatform.Utilities/CodeCoverageDataAttachmentsHandler.cs b/src/Microsoft.TestPlatform.Utilities/CodeCoverageDataAttachmentsHandler.cs index 9e9d559190..46cd936844 100644 --- a/src/Microsoft.TestPlatform.Utilities/CodeCoverageDataAttachmentsHandler.cs +++ b/src/Microsoft.TestPlatform.Utilities/CodeCoverageDataAttachmentsHandler.cs @@ -59,11 +59,11 @@ public async Task> ProcessAttachmentSetsAsync(ICollec if (!string.IsNullOrEmpty(mergedCoverageReportFilePath)) { var resultAttachmentSet = new AttachmentSet(CodeCoverageDataCollectorUri, CoverageFriendlyName); - resultAttachmentSet.Attachments.Add(new UriDataAttachment(new Uri(mergedCoverageReportFilePath), CoverageFriendlyName)); + resultAttachmentSet.Attachments.Add(UriDataAttachment.CreateFrom(mergedCoverageReportFilePath, CoverageFriendlyName)); foreach (var coverageOtherFilePath in coverageOtherFilePaths) { - resultAttachmentSet.Attachments.Add(new UriDataAttachment(new Uri(coverageOtherFilePath), string.Empty)); + resultAttachmentSet.Attachments.Add(UriDataAttachment.CreateFrom(coverageOtherFilePath, string.Empty)); } return new Collection { resultAttachmentSet };