Пример #1
0
            /// <summary>
            /// Convert UnrealAutomatedTestPassResults to Horde data model
            /// </summary>
            /// <param name="InTestPassResults"></param>
            /// <param name="ReportPath"></param>
            /// <param name="ReportURL"></param>
            public static UnrealEngineTestPassResults FromUnrealAutomatedTests(UnrealAutomatedTestPassResults InTestPassResults, string ReportPath, string ReportURL)
            {
                UnrealEngineTestPassResults OutTestPassResults = new UnrealEngineTestPassResults();

                OutTestPassResults.ClientDescriptor           = InTestPassResults.clientDescriptor;
                OutTestPassResults.ReportCreatedOn            = InTestPassResults.reportCreatedOn;
                OutTestPassResults.ReportURL                  = ReportURL;
                OutTestPassResults.SucceededCount             = InTestPassResults.succeeded;
                OutTestPassResults.SucceededWithWarningsCount = InTestPassResults.succeededWithWarnings;
                OutTestPassResults.FailedCount                = InTestPassResults.failed;
                OutTestPassResults.NotRunCount                = InTestPassResults.notRun;
                OutTestPassResults.TotalDurationSeconds       = InTestPassResults.totalDuration;
                if (InTestPassResults.tests != null)
                {
                    foreach (UnrealAutomatedTestResult InTestResult in InTestPassResults.tests)
                    {
                        TestResult ConvertedTestResult = OutTestPassResults.AddNewTestResult();
                        ConvertedTestResult.TestDisplayName = InTestResult.testDisplayName;
                        ConvertedTestResult.FullTestPath    = InTestResult.fullTestPath;
                        ConvertedTestResult.State           = InTestResult.state;
                        Guid TestGuid = Guid.NewGuid();
                        ConvertedTestResult.ArtifactName = TestGuid + ".json";
                        InTestResult.artifactName        = ConvertedTestResult.ArtifactName;
                        // Copy Test Result Detail
                        TestResultDetailed ConvertedTestResultDetailed = ConvertedTestResult.GetTestResultDetailed();
                        ConvertedTestResultDetailed.Errors   = InTestResult.errors;
                        ConvertedTestResultDetailed.Warnings = InTestResult.warnings;
                        foreach (UnrealAutomationArtifact InTestArtifact in InTestResult.artifacts)
                        {
                            Artifact NewArtifact = ConvertedTestResultDetailed.AddNewArtifact();
                            NewArtifact.Id   = InTestArtifact.id;
                            NewArtifact.Name = InTestArtifact.name;
                            NewArtifact.Type = InTestArtifact.type;
                            ComparisonFiles ArtifactFiles = NewArtifact.Files;
                            ArtifactFiles.Difference = Path.Combine(ReportPath, InTestArtifact.files.difference);
                            ArtifactFiles.Approved   = Path.Combine(ReportPath, InTestArtifact.files.approved);
                            ArtifactFiles.Unapproved = Path.Combine(ReportPath, InTestArtifact.files.unapproved);
                        }
                        foreach (UnrealAutomationEntry InTestEntry in InTestResult.entries)
                        {
                            Entry NewEntry = ConvertedTestResultDetailed.AddNewEntry();
                            NewEntry.Filename   = InTestEntry.filename;
                            NewEntry.LineNumber = InTestEntry.lineNumber;
                            NewEntry.Timestamp  = InTestEntry.timestamp;
                            Event EntryEvent = NewEntry.Event;
                            EntryEvent.Artifact = [email protected];
                            EntryEvent.Context  = [email protected];
                            EntryEvent.Message  = [email protected];
                            EntryEvent.Type     = [email protected];
                        }
                    }
                }
                return(OutTestPassResults);
            }
            /// <summary>
            /// Copy Test Results Artifacts
            /// </summary>
            /// <param name="OutputArtifactPath"></param>
            public void CopyTestResultsArtifacts(string OutputArtifactPath)
            {
                if (!Directory.Exists(OutputArtifactPath))
                {
                    Directory.CreateDirectory(OutputArtifactPath);
                }
                int ArtifactsCount = 0;

                foreach (TestResult OutputTestResult in Tests)
                {
                    TestResultDetailed OutputTestResultDetailed = OutputTestResult.GetTestResultDetailed();
                    // copy artifacts
                    foreach (Artifact TestArtifact in OutputTestResultDetailed.Artifacts)
                    {
                        string[] ArtifactPaths = { TestArtifact.Files.Difference, TestArtifact.Files.Approved, TestArtifact.Files.Unapproved };
                        foreach (string ArtifactPath in ArtifactPaths)
                        {
                            if (File.Exists(ArtifactPath))
                            {
                                try
                                {
                                    File.Copy(ArtifactPath, Path.Combine(OutputArtifactPath, Path.GetFileName(ArtifactPath)));
                                    ArtifactsCount++;
                                }
                                catch (Exception Ex)
                                {
                                    Log.Error("Failed to copy artifact '{0}'. {1}", Path.GetFileName(ArtifactPath), Ex);
                                }
                            }
                        }
                        TestArtifact.Files.Difference = Path.GetFileName(TestArtifact.Files.Difference);
                        TestArtifact.Files.Approved   = Path.GetFileName(TestArtifact.Files.Approved);
                        TestArtifact.Files.Unapproved = Path.GetFileName(TestArtifact.Files.Unapproved);
                    }
                    // write test json blob
                    string TestResultFilePath = Path.Combine(OutputArtifactPath, OutputTestResult.ArtifactName);
                    try
                    {
                        Json.Save(new FileReference(TestResultFilePath), OutputTestResultDetailed);
                        ArtifactsCount++;
                    }
                    catch (Exception Ex)
                    {
                        Log.Error("Failed to save Test Result for '{0}'. {1}", OutputTestResult.TestDisplayName, Ex);
                    }
                }
                Log.Verbose("Copied {0} artifacts for Horde to {1}", ArtifactsCount, OutputArtifactPath);
            }
Пример #3
0
 /// <summary>
 /// Set the underlying TestResultDetailed
 /// </summary>
 public void SetTestResultDetailed(TestResultDetailed InTestResultDetailed)
 {
     TestDetailed = InTestResultDetailed;
 }
Пример #4
0
 public TestResult()
 {
     TestDetailed = new TestResultDetailed();
 }