public void Setup()
 {
     optionsParser             = new OptionsParser();
     PerformanceBenchmark      = new PerformanceBenchmark();
     testResultXmlParser       = new TestResultXmlParser();
     performanceTestRunResults = new List <PerformanceTestRunResult>();
     testResults = new List <TestResult>();
     baselinePerformanceTestRunResults = new List <PerformanceTestRunResult>();
     baselineTestResults = new List <TestResult>();
 }
        public static void Parse()
        {
            var args = CommandLineArgs.FromCommandLine();
            var xmlResultsDirectory = string.Empty;
            var jsonOutputDirectory = string.Empty;

            if (!args.TryGetCommandLineValue(xmlResultsDirKey, ref xmlResultsDirectory) ||
                !args.TryGetCommandLineValue(jsonOutputDirKey, ref jsonOutputDirectory))
            {
                Debug.LogError($"You must provide valid {xmlResultsDirKey} and {jsonOutputDirKey} arguments.");
                return;
            }

            var jsonOutputPath = Path.GetFullPath(jsonOutputDirectory);
            Directory.CreateDirectory(jsonOutputPath);

            var testResults = Directory.EnumerateFiles(Path.GetFullPath(xmlResultsDirectory), "*.xml");
            foreach (var testResult in testResults)
            {
                try
                {
                    var jsonFileName = Path.ChangeExtension(Path.GetFileName(testResult), "json");
                    var jsonFilePath = Path.Combine(jsonOutputPath, jsonFileName);

                    var xmlParser = new TestResultXmlParser();
                    var run = xmlParser.GetPerformanceTestRunFromXml(testResult);
                    if (run == null)
                    {
                        Debug.LogError($"No result at given path: {testResult}");
                        return;
                    }

                    File.WriteAllText(jsonFilePath, JsonConvert.SerializeObject(run, Formatting.Indented));
                }
                catch (Exception e)
                {
                    Debug.LogException(e);
                }
            }
        }