// Returns a list of collector entry private static CollectorDataEntry ToCollectorEntry(ObjectModel.AttachmentSet attachmentSet, Guid testResultExecutionId, TestRun testRun, string trxFileDirectory) { string runDirectoryName = Path.Combine(trxFileDirectory, testRun.RunConfiguration.RunDeploymentRootDirectory); string inDirectory = Path.Combine(runDirectoryName, "In"); string targetDirectory = inDirectory; if (!testResultExecutionId.Equals(Guid.Empty)) { targetDirectory = Path.Combine(inDirectory, testResultExecutionId.ToString()); } targetDirectory = Path.Combine(targetDirectory, Environment.MachineName); if (!Directory.Exists(targetDirectory)) { Directory.CreateDirectory(targetDirectory); } List <IDataAttachment> uriDataAttachments = new List <IDataAttachment>(); foreach (ObjectModel.UriDataAttachment uriDataAttachment in attachmentSet.Attachments) { if (ObjectModel.EqtTrace.IsVerboseEnabled) { ObjectModel.EqtTrace.Verbose("TrxLogger: ToCollectorEntry: Got attachment " + uriDataAttachment.Uri + " with description " + uriDataAttachment.Description); } string sourceFile = uriDataAttachment.Uri.LocalPath; Debug.Assert(Path.IsPathRooted(sourceFile), "Source file is not rooted"); // copy the source file to the target location string targetFileName = FileHelper.GetNextIterationFileName(targetDirectory, Path.GetFileName(sourceFile), false); CopyFile(sourceFile, targetFileName); // Add the target file name to the collector files list. // (Trx viewer automatically adds In\ to the collected file. string fileName = Path.Combine(Environment.MachineName, Path.GetFileName(targetFileName)); Uri sourceFileUri = new Uri(fileName, UriKind.Relative); TrxObjectModel.UriDataAttachment dataAttachment = new TrxObjectModel.UriDataAttachment(uriDataAttachment.Description, sourceFileUri); uriDataAttachments.Add(dataAttachment); } return(new CollectorDataEntry( attachmentSet.Uri, attachmentSet.DisplayName, Environment.MachineName, Environment.MachineName, false, uriDataAttachments)); }
// Get the path to the result files private IList <string> ToResultFiles(ObjectModel.AttachmentSet attachmentSet, Guid testResultExecutionId, TestRun testRun, string trxFileDirectory) { string runDirectoryName = Path.Combine(trxFileDirectory, testRun.RunConfiguration.RunDeploymentRootDirectory); string testResultDirectory = Path.Combine(runDirectoryName, "In"); if (!Guid.Equals(testResultExecutionId, Guid.Empty)) { testResultDirectory = Path.Combine(testResultDirectory, testResultExecutionId.ToString()); } testResultDirectory = Path.Combine(testResultDirectory, Environment.MachineName); if (!Directory.Exists(testResultDirectory)) { Directory.CreateDirectory(testResultDirectory); } List <string> resultFiles = new List <string>(); foreach (ObjectModel.UriDataAttachment uriDataAttachment in attachmentSet.Attachments) { string sourceFile = uriDataAttachment.Uri.IsAbsoluteUri ? uriDataAttachment.Uri.LocalPath : uriDataAttachment.Uri.ToString(); if (ObjectModel.EqtTrace.IsVerboseEnabled) { ObjectModel.EqtTrace.Verbose("TrxLogger: ToResultFiles: Got attachment " + uriDataAttachment.Uri + " with local path " + sourceFile); } Debug.Assert(Path.IsPathRooted(sourceFile), "Source file is not rooted"); // copy the source file to the target location string targetFileName = FileHelper.GetNextIterationFileName(testResultDirectory, Path.GetFileName(sourceFile), false); try { CopyFile(sourceFile, targetFileName); // Add the target file name to the result files list. // (Trx viewer automatically adds In\<Guid> to the result file. string fileName = Path.Combine(Environment.MachineName, Path.GetFileName(targetFileName)); resultFiles.Add(fileName); } catch (Exception ex) { if (ObjectModel.EqtTrace.IsErrorEnabled) { ObjectModel.EqtTrace.Error("Trxlogger: ToResultFiles: " + ex); } } } return(resultFiles); }