Пример #1
0
        // 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);

                try
                {
                    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);
                }
                catch (Exception ex)
                {
                    if (ObjectModel.EqtTrace.IsErrorEnabled)
                    {
                        ObjectModel.EqtTrace.Error("Trxlogger: ToCollectorEntry: " + ex);
                    }
                }
            }

            return(new CollectorDataEntry(
                       attachmentSet.Uri,
                       attachmentSet.DisplayName,
                       Environment.MachineName,
                       Environment.MachineName,
                       false,
                       uriDataAttachments));
        }