static TestResult ProcessTestResults(SelfTest test)
        {
            var results   = NUnitResults.Load(PathHelper.GetEntryPath("TestResult.xml"));
            var testCases = results
                            .GetTestCases()
                            .Select(x => new
            {
                Element     = x,
                Description = x.Attribute("description") != null ? x.Attribute("description").Value : null,
                Success     = bool.Parse(x.Attribute("success").Value),
                Messages    = x.Descendants("message").Select(y => y.Value).ToArray()
            })
                            .ToArray();

            var succeeded = testCases.Count(x => x.Success);
            var total     = testCases.Count();

            var msg =
                succeeded == 0 ? test.Messages[0] :
                succeeded != total ? test.Messages[1] :
                test.Messages[2];

            var details = testCases.SelectMany(x => x.Messages).DefaultIfEmpty().Aggregate((x, y) => x + "\r\n" + y);

            return(new TestResult(test.Name, msg, details, testCases.All(x => x.Success), succeeded, total));
        }
        static TestResult RunTest(SelfTestAssembly asm, SelfTest test)
        {
            WriteHeader(string.Format("PHPVH Self Test: {0}", test.Name));
            Cli.WriteLine();
            RunNUnit(asm, test);

            return(ProcessTestResults(test));
        }
 static int RunNUnit(SelfTestAssembly asm, SelfTest test)
 {
     return(NUnit.ConsoleRunner.Runner.Main(new[]
     {
         asm.Assembly,
         test.Arg,
         "/nologo",
         "/trace:Off",
         "/domain:none",
         "/out:TestResult.txt",
         "/err:TestErr.txt",
     }));
 }
        static TestResult RunTest(SelfTestAssembly asm, SelfTest test)
        {
            WriteHeader(string.Format("PHPVH Self Test: {0}", test.Name));
            Cli.WriteLine();
            RunNUnit(asm, test);

            return ProcessTestResults(test);
        }
 static int RunNUnit(SelfTestAssembly asm, SelfTest test)
 {
     return NUnit.ConsoleRunner.Runner.Main(new[]
     {
         asm.Assembly,
         test.Arg,
         "/nologo",
         "/trace:Off",
         "/domain:none",
         "/out:TestResult.txt",
         "/err:TestErr.txt",
     });
 }
        static TestResult ProcessTestResults(SelfTest test)
        {
            var results = NUnitResults.Load(PathHelper.GetEntryPath("TestResult.xml"));
            var testCases = results
                .GetTestCases()
                .Select(x => new
                {
                    Element = x,
                    Description = x.Attribute("description") != null ? x.Attribute("description").Value : null,
                    Success = bool.Parse(x.Attribute("success").Value),
                    Messages = x.Descendants("message").Select(y => y.Value).ToArray()
                })
                .ToArray();

            var succeeded = testCases.Count(x => x.Success);
            var total = testCases.Count();

            var msg =
                succeeded == 0 ? test.Messages[0] :
                succeeded != total ? test.Messages[1] :
                test.Messages[2];

            var details = testCases.SelectMany(x => x.Messages).DefaultIfEmpty().Aggregate((x, y) => x + "\r\n" + y);

            return new TestResult(test.Name, msg, details, testCases.All(x => x.Success), succeeded, total);
        }