public void WriteReport(PerformanceTestRunResult[] results, uint sigFig = 2, string reportDirectoryPath = null, bool hasBenchmarkResults = false) { if (results != null && results.Length > 0) { Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture; thisSigFig = sigFig; thisHasBenchmarkResults = hasBenchmarkResults; perfTestRunResults = results; baselineResults = results.FirstOrDefault(r => r.IsBaseline); SetDistinctTestNames(); SetDistinctSampleGroupNames(); var reportDirectory = EnsureBenchmarkDirectory(reportDirectoryPath); WriteEmbeddedResourceFiles(reportDirectory); var benchmarkReportFile = GetBenchmarkReportFile(reportDirectory); using (var rw = new StreamWriter(benchmarkReportFile)) { System.Console.WriteLine($"Writing Report To: {reportDirectory.FullName}"); System.Console.WriteLine($""); WriteHtmlReport(rw); } } else { throw new ArgumentNullException(nameof(results), "PerformanceTestRun results list is empty. No report will be written."); } }
public void WriteReport(PerformanceTestRunResult[] results, uint sigFig = 2, string reportDirectoryPath = null, string reportHtmlName = null, bool hasBenchmarkResults = false) { if (results != null && results.Length > 0) { thisSigFig = sigFig; thisHasBenchmarkResults = hasBenchmarkResults; perfTestRunResults = results; baselineResults = results.FirstOrDefault(r => r.IsBaseline); SetDistinctTestNames(); SetDistinctSampleGroupNames(); var reportDirectory = EnsureBenchmarkDirectory(reportDirectoryPath); WriteEmbeddedResourceFiles(reportDirectory); var benchmarkReportFile = GetBenchmarkReportFile(reportDirectory, reportHtmlName); using (var rw = new StreamWriter(benchmarkReportFile)) { WriteHtmlReport(rw); } } else { throw new ArgumentNullException(nameof(results), "PerformanceTestRun results list is empty. No report will be written."); } }
private void EnsureOrderedResults(List <PerformanceTestRunResult> results) { baselineResults = results.FirstOrDefault(r => r.IsBaseline); if (baselineResults != null) { perfTestRunResults.Add(baselineResults); } var tempResults = results.Where(r => !r.IsBaseline).ToList(); tempResults.Sort((x, y) => DateTime.Compare(x.StartTime, y.StartTime)); perfTestRunResults.AddRange(tempResults); }
public PerformanceTestRunResult CreateTestRunResult(PerformanceTestRun runResults, List <TestResult> testResults, string resultName, bool isBaseline = false) { var performanceTestRunResult = new PerformanceTestRunResult { ResultName = resultName, IsBaseline = isBaseline, TestSuite = runResults.TestSuite, StartTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddMilliseconds( runResults.StartTime), TestResults = testResults, PlayerSystemInfo = runResults.PlayerSystemInfo, EditorVersion = runResults.EditorVersion, BuildSettings = runResults.BuildSettings, ScreenSettings = runResults.ScreenSettings, QualitySettings = runResults.QualitySettings, PlayerSettings = runResults.PlayerSettings }; return(performanceTestRunResult); }
private static void Main(string[] args) { var aggregateTestRunResults = new List <PerformanceTestRunResult>(); var baselinePerformanceTestRunResults = new List <PerformanceTestRunResult>(); var baselineTestResults = new List <TestResult>(); var performanceTestRunResults = new List <PerformanceTestRunResult>(); var testResults = new List <TestResult>(); var performanceBenchmark = new PerformanceBenchmark(ExcludedConfigFieldNames); var optionsParser = new OptionsParser(); optionsParser.ParseOptions(performanceBenchmark, args); var testResultXmlParser = new TestResultXmlParser(); if (performanceBenchmark.BaselineResultFilesExist) { performanceBenchmark.AddBaselinePerformanceTestRunResults(testResultXmlParser, baselinePerformanceTestRunResults, baselineTestResults); if (baselinePerformanceTestRunResults.Any()) { aggregateTestRunResults.AddRange(baselinePerformanceTestRunResults); } else { Environment.Exit(1); } } if (performanceBenchmark.ResultFilesExist) { performanceBenchmark.AddPerformanceTestRunResults(testResultXmlParser, performanceTestRunResults, testResults, baselineTestResults); if (performanceTestRunResults.Any()) { aggregateTestRunResults.AddRange(performanceTestRunResults); } else { Environment.Exit(1); } } var performanceTestResults = new PerformanceTestRunResult[0]; if (aggregateTestRunResults.Any(a => a.IsBaseline)) { Array.Resize(ref performanceTestResults, 1); performanceTestResults[0] = aggregateTestRunResults.First(a => a.IsBaseline); } var nonBaselineTestRunResults = aggregateTestRunResults.Where(a => !a.IsBaseline).ToList(); nonBaselineTestRunResults.Sort((run1, run2) => string.Compare(run1.ResultName, run2.ResultName, StringComparison.Ordinal)); foreach (var performanceTestRunResult in nonBaselineTestRunResults) { Array.Resize(ref performanceTestResults, performanceTestResults.Length + 1); performanceTestResults[performanceTestResults.Length - 1] = performanceTestRunResult; } var reportWriter = new ReportWriter(performanceBenchmark.TestRunMetadataProcessor); reportWriter.WriteReport( performanceTestResults, performanceBenchmark.SigFig, performanceBenchmark.ReportDirPath, performanceBenchmark.ReportHtmlName, performanceBenchmark.BaselineResultFilesExist); }
private static int Main(string[] args) { var aggregateTestRunResults = new List <PerformanceTestRunResult>(); var baselinePerformanceTestRunResults = new List <PerformanceTestRunResult>(); var baselineTestResults = new List <TestResult>(); var performanceTestRunResults = new List <PerformanceTestRunResult>(); var testResults = new List <TestResult>(); var performanceBenchmark = new PerformanceBenchmark(ExcludedConfigFieldNames); var optionsParser = new OptionsParser(); optionsParser.ParseOptions(performanceBenchmark, args); var testResultXmlParser = new TestResultXmlParser(); if (performanceBenchmark.BaselineResultFilesExist) { performanceBenchmark.AddBaselinePerformanceTestRunResults(testResultXmlParser, baselinePerformanceTestRunResults, baselineTestResults); if (baselinePerformanceTestRunResults.Any()) { aggregateTestRunResults.AddRange(baselinePerformanceTestRunResults); } else { Environment.Exit(1); } } if (performanceBenchmark.ResultFilesExist) { performanceBenchmark.AddPerformanceTestRunResults(testResultXmlParser, performanceTestRunResults, testResults, baselineTestResults); if (performanceTestRunResults.Any()) { aggregateTestRunResults.AddRange(performanceTestRunResults); } else { Environment.Exit(1); } } var performanceTestResults = new PerformanceTestRunResult[0]; // If we have a baseline if (aggregateTestRunResults.Any(a => a.IsBaseline)) { // Insert the baseline in the front of the array results; this way we can display the baseline first in the report Array.Resize(ref performanceTestResults, 1); performanceTestResults[0] = aggregateTestRunResults.First(a => a.IsBaseline); } var nonBaselineTestRunResults = aggregateTestRunResults.Where(a => !a.IsBaseline).ToList(); nonBaselineTestRunResults.Sort((run1, run2) => string.Compare(run1.ResultName, run2.ResultName, StringComparison.Ordinal)); foreach (var performanceTestRunResult in nonBaselineTestRunResults) { Array.Resize(ref performanceTestResults, performanceTestResults.Length + 1); performanceTestResults[performanceTestResults.Length - 1] = performanceTestRunResult; } performanceBenchmark.TestRunMetadataProcessor.PerformFinalMetadataUpdate(performanceBenchmark); var reportWriter = new ReportWriter(performanceBenchmark.TestRunMetadataProcessor); reportWriter.WriteReport( performanceTestResults, performanceBenchmark.SigFig, performanceBenchmark.ReportDirPath, performanceBenchmark.BaselineResultFilesExist); return(WriteFailedTestsAndMetricsToConsole(performanceTestResults, performanceBenchmark)); }