예제 #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);
                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));
        }
예제 #2
0
        // 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);
        }