Beispiel #1
0
        internal static void GenerateReport(string fileName)
        {
            VersionFinder    v = new VersionFinder();
            SupportedFormats f = v.GetFileVersion(fileName);

            if (f != SupportedFormats.vs2010)
            {
                Console.WriteLine("File {0} is not a recognized as a valid trx. Only VS2010 are supported", fileName);
            }
            else
            {
                Console.WriteLine("Processing {0} trx file", f.ToString());

                TrxParser     parser = new TrxParser();
                TestRunResult r      = parser.Parse(fileName);
                string        html   = new HtmlConverter(r).GetHtml();

                using (TextWriter file = File.CreateText(fileName + ".htm"))
                {
                    file.Write(html);
                }

                Console.WriteLine("Tranformation Succeed. OutputFile: " + fileName + ".htm\n");
            }
        }
Beispiel #2
0
        public void ParseVS10SampleFile()
        {
            TrxParser parser = new TrxParser();
            var       result = parser.Parse("VS2010.trx.xml");

            Assert.AreEqual("Sample", result.Name);
            Assert.AreEqual(1, result.Computers.Count());
            Assert.AreEqual("RIDOHP", result.Computers.First());
            Assert.AreEqual(@"RIDOHP\rido", result.UserName);
            Assert.AreEqual(18, result.TestMethodRunList.Count(), "No se ha calculado el número total de TestMethods");
            Assert.AreEqual(18, result.TotalMethods, "No se ha calculado el número total de TestMethods");
            Assert.AreEqual(6, result.Passed, "No se ha calculado el número total de TestMethods OK");
            Assert.AreEqual(7, result.Failed, "No se ha calculado el número total de TestMethods Failed");
            Assert.AreEqual(5, result.Inconclusive, "No se ha calculado el número total de TestMethods Ignored");
            Assert.AreEqual(1, result.Assemblies.Count());
            Assert.AreEqual("SampleReport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", result.Assemblies.First().FullName);
            Assert.AreEqual(TimeSpan.Parse("00:00:00.0537262"), result.TimeTaken);

            Assert.AreEqual(33, result.PercentOK, "no se ha calculado el PercentOK");
            Assert.AreEqual(39, result.PercentKO, "no se ha calculado el PercentKO");
            Assert.AreEqual(28, result.PercentIgnored, "no se ha calculado el PercentIgnored");

            Assert.AreEqual(56, result.TotalPercent);

            Assert.AreEqual(6, result.TestClassList.Count);
            AssertAllFailed(result);
            AssertSomeFailed(result);
            AssertAllPassed(result);
            AssertFailAndIgnored(result);
        }
Beispiel #3
0
        //---------------------------------------------------------------------
        private Models.Test ParseCore(string fileName)
        {
            XElement trx = XElement.Load(fileName);
            var      sut = new TrxParser(trx);

            sut.Parse();

            return(sut.Result);
        }
Beispiel #4
0
        public void CanParseAborted()
        {
            TrxParser parser = new TrxParser();
            var       result = parser.Parse("Aborted.trx.xml");

            Assert.IsNotNull(result);
            Assert.AreEqual(0, result.PercentOK);
            Assert.AreEqual(0, result.PercentKO);
            Assert.AreEqual(100, result.PercentIgnored);
            Assert.AreEqual(1, result.Inconclusive);
        }
Beispiel #5
0
        public void GroupedByStatus()
        {
            TrxParser parser  = new TrxParser();
            var       result  = parser.Parse("VS2010.trx.xml");
            var       grouped = result.TestMethodRunList.GroupBy(c => c.Status);

            Assert.AreEqual(4, grouped.Count());
            var group = grouped.ElementAt(0);

            Assert.AreEqual(1, group.Count());
        }
        public void PublishTrxResults()
        {
            SetupMocks();
            String trxContents = "<?xml version = \"1.0\" encoding = \"UTF-8\"?>" +
                                 "<TestRun id = \"ee3d8b3b-1ac9-4a7e-abfa-3d3ed2008613\" name = \"somerandomusername@SOMERANDOMCOMPUTERNAME 2015-03-20 16:53:32\" runUser = \"FAREAST\\somerandomusername\" xmlns =\"http://microsoft.com/schemas/VisualStudio/TeamTest/2010\"><Times creation = \"2015-03-20T16:53:32.3309380+05:30\" queuing = \"2015-03-20T16:53:32.3319381+05:30\" start = \"2015-03-20T16:53:32.3349628+05:30\" finish = \"2015-03-20T16:53:32.9232329+05:30\" />" +
                                 "<TestDefinitions>" +
                                 "<UnitTest name = \"TestMethod2\" storage = \"c:/users/somerandomusername/source/repos/projectx/unittestproject4/unittestproject4/bin/debug/unittestproject4.dll\" priority = \"1\" id = \"f0d6b58f-dc08-9c0b-aab7-0a1411d4a346\"><Owners><Owner name = \"asdf2\" /></Owners><Execution id = \"48ec1e47-b9df-43b9-aef2-a2cc8742353d\" /><TestMethod codeBase = \"c:/users/somerandomusername/source/repos/projectx/unittestproject4/unittestproject4/bin/debug/unittestproject4.dll\" adapterTypeName = \"Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapter\" className = \"UnitTestProject4.UnitTest1\" name = \"TestMethod2\" /></UnitTest>" +
                                 "<WebTest name=\"PSD_Startseite\" storage=\"c:\\vsoagent\\a284d2cc\\vseqa1\\psd_startseite.webtest\" id=\"01da1a13-b160-4ee6-9d84-7a6dfe37b1d2\" persistedWebTest=\"7\"><TestCategory><TestCategoryItem TestCategory=\"PSD\" /></TestCategory><Execution id=\"eb421c16-4546-435a-9c24-0d2878ea76d4\" /></WebTest>" +
                                 "<OrderedTest name=\"OrderedTest1\" storage=\"c:\\users\\random\\source\\repos\\codeduitestproject1\\codeduitestproject1\\bin\\debug\\orderedtest1.orderedtest\" id=\"4eb63268-af79-48f1-b625-05ef09b0301a\"><Execution id=\"20927d24-2eb4-473f-b5b2-f52667b88f6f\" /><TestLinks><TestLink id=\"fd846020-c6f8-3c49-3ed0-fbe1e1fd340b\" name=\"CodedUITestMethod1\" storage=\"c:\\users\\random\\source\\repos\\codeduitestproject1\\codeduitestproject1\\bin\\debug\\codeduitestproject1.dll\" /><TestLink id=\"1c7ece84-d949-bed1-0a4c-dfad4f9c953e\" name=\"CodedUITestMethod2\" storage=\"c:\\users\\random\\source\\repos\\codeduitestproject1\\codeduitestproject1\\bin\\debug\\codeduitestproject1.dll\" /></TestLinks></OrderedTest>" +
                                 "<UnitTest name=\"CodedUITestMethod1\" storage=\"c:\\users\\random\\source\\repos\\codeduitestproject1\\codeduitestproject1\\bin\\debug\\codeduitestproject1.dll\" id=\"fd846020-c6f8-3c49-3ed0-fbe1e1fd340b\"><Execution id=\"4f82d822-cd28-4bcc-b091-b08a66cf92e7\" parentId=\"20927d24-2eb4-473f-b5b2-f52667b88f6f\" /><TestMethod codeBase=\"c:\\users\\random\\source\\repos\\codeduitestproject1\\codeduitestproject1\\bin\\debug\\codeduitestproject1.dll\" adapterTypeName=\"executor://orderedtestadapter/v1\" className=\"CodedUITestProject1.CodedUITest1\" name=\"CodedUITestMethod1\" /></UnitTest>" +
                                 "<UnitTest name=\"CodedUITestMethod2\" storage=\"c:\\users\\random\\source\\repos\\codeduitestproject1\\codeduitestproject1\\bin\\debug\\codeduitestproject1.dll\" priority=\"1\" id=\"1c7ece84-d949-bed1-0a4c-dfad4f9c953e\"><Execution id=\"5918f7d4-4619-4869-b777-71628227c62a\" parentId=\"20927d24-2eb4-473f-b5b2-f52667b88f6f\" /><TestMethod codeBase=\"c:\\users\\random\\source\\repos\\codeduitestproject1\\codeduitestproject1\\bin\\debug\\codeduitestproject1.dll\" adapterTypeName=\"executor://orderedtestadapter/v1\" className=\"CodedUITestProject1.CodedUITest1\" name=\"CodedUITestMethod2\" /></UnitTest>" +
                                 "</TestDefinitions>" +

                                 "<Results>" +
                                 "<UnitTestResult executionId = \"48ec1e47-b9df-43b9-aef2-a2cc8742353d\" testId = \"f0d6b58f-dc08-9c0b-aab7-0a1411d4a346\" testName = \"TestMethod2\" computerName = \"SOMERANDOMCOMPUTERNAME\" duration = \"00:00:00.0834563\" startTime = \"2015-03-20T16:53:32.3099353+05:30\" endTime = \"2015-03-20T16:53:32.3939623+05:30\" testType = \"13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b\" outcome = \"Pending\" testListId = \"8c84fa94-04c1-424b-9868-57a2d4851a1d\" relativeResultsDirectory = \"48ec1e47-b9df-43b9-aef2-a2cc8742353d\" ><Output><StdOut>Show console log output.</StdOut><ErrorInfo><Message>Assert.Fail failed.</Message><StackTrace>at UnitTestProject4.UnitTest1.TestMethod2() in C:\\Users\\somerandomusername\\Source\\Repos\\Projectx\\UnitTestProject4\\UnitTestProject4\\UnitTest1.cs:line 21</StackTrace></ErrorInfo></Output>" +
                                 "<ResultFiles><ResultFile path=\"DIGANR-DEV4\\x.txt\" /></ResultFiles>" +
                                 "</UnitTestResult>" +
                                 "<WebTestResult executionId=\"eb421c16-4546-435a-9c24-0d2878ea76d4\" testId=\"01da1a13-b160-4ee6-9d84-7a6dfe37b1d2\" testName=\"PSD_Startseite\" computerName=\"LAB-BUILDVNEXT\" duration=\"00:00:01.6887389\" startTime=\"2015-05-20T18:53:51.1063165+00:00\" endTime=\"2015-05-20T18:54:03.9160742+00:00\" testType=\"4e7599fa-5ecb-43e9-a887-cd63cf72d207\" outcome=\"Passed\" testListId=\"8c84fa94-04c1-424b-9868-57a2d4851a1d\" relativeResultsDirectory=\"eb421c16-4546-435a-9c24-0d2878ea76d4\"><Output><StdOut>Do not show console log output.</StdOut></Output>" +
                                 "<ResultFiles>" +
                                 "<ResultFile path=\"PSD_Startseite.webtestResult\" />" +
                                 "</ResultFiles>" +
                                 "<WebTestResultFilePath>LOCAL SERVICE_LAB-BUILDVNEXT 2015-05-20 18_53_41\\In\\eb421c16-4546-435a-9c24-0d2878ea76d4\\PSD_Startseite.webtestResult</WebTestResultFilePath>" +
                                 "</WebTestResult>" +
                                 "<TestResultAggregation executionId=\"20927d24-2eb4-473f-b5b2-f52667b88f6f\" testId=\"4eb63268-af79-48f1-b625-05ef09b0301a\" testName=\"OrderedTest1\" computerName=\"random-DT\" duration=\"00:00:01.4031295\" startTime=\"2017-12-14T16:27:24.2216619+05:30\" endTime=\"2017-12-14T16:27:25.6423256+05:30\" testType=\"ec4800e8-40e5-4ab3-8510-b8bf29b1904d\" outcome=\"Passed\" testListId=\"8c84fa94-04c1-424b-9868-57a2d4851a1d\" relativeResultsDirectory=\"20927d24-2eb4-473f-b5b2-f52667b88f6f\">" +
                                 "<InnerResults>" +
                                 "<UnitTestResult executionId=\"4f82d822-cd28-4bcc-b091-b08a66cf92e7\" parentExecutionId=\"20927d24-2eb4-473f-b5b2-f52667b88f6f\" testId=\"fd846020-c6f8-3c49-3ed0-fbe1e1fd340b\" testName=\"01- CodedUITestMethod1 (OrderedTest1)\" computerName=\"random-DT\" duration=\"00:00:00.3658086\" startTime=\"2017-12-14T10:57:24.2386920+05:30\" endTime=\"2017-12-14T10:57:25.3440342+05:30\" testType=\"13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b\" outcome=\"Passed\" testListId=\"8c84fa94-04c1-424b-9868-57a2d4851a1d\" relativeResultsDirectory=\"4f82d822-cd28-4bcc-b091-b08a66cf92e7\" />" +
                                 "<UnitTestResult executionId=\"5918f7d4-4619-4869-b777-71628227c62a\" parentExecutionId=\"20927d24-2eb4-473f-b5b2-f52667b88f6f\" testId=\"1c7ece84-d949-bed1-0a4c-dfad4f9c953e\" testName=\"02- CodedUITestMethod2 (OrderedTest1)\" computerName=\"random-DT\" duration=\"00:00:00.0448870\" startTime=\"2017-12-14T10:57:25.3480349+05:30\" endTime=\"2017-12-14T10:57:25.3950371+05:30\" testType=\"13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b\" outcome=\"Passed\" testListId=\"8c84fa94-04c1-424b-9868-57a2d4851a1d\" relativeResultsDirectory=\"5918f7d4-4619-4869-b777-71628227c62a\" />" +
                                 "</InnerResults>" +
                                 "</TestResultAggregation>" +
                                 "</Results>" +

                                 "<ResultSummary outcome=\"Failed\"><Counters total = \"3\" executed = \"3\" passed=\"2\" failed=\"1\" error=\"0\" timeout=\"0\" aborted=\"0\" inconclusive=\"0\" passedButRunAborted=\"0\" notRunnable=\"0\" notExecuted=\"0\" disconnected=\"0\" warning=\"0\" completed=\"0\" inProgress=\"0\" pending=\"0\" />" +
                                 "</ResultSummary>" +
                                 "</TestRun>";

            _resultFile = "resultsWithoutTestNames.trx";
            File.WriteAllText(_resultFile, trxContents);
            TrxParser        reader          = new TrxParser();
            TestRunContext   runContext      = new TestRunContext();
            TestDataProvider runDataProvider = reader.ParseTestResultFiles(_ec.Object, runContext, new List <string> {
                _resultFile
            });
            List <TestRunData> runData = runDataProvider.GetTestRunData();


            Assert.Equal(runData[0].TestResults.Count, 3);
            Assert.Equal(runData[0].TestResults[0].Outcome, "NotExecuted");
            Assert.Equal(runData[0].TestResults[0].TestCaseTitle, "TestMethod2");
            Assert.Equal(runData[0].TestResults[1].Outcome, "Passed");
            Assert.Equal(runData[0].TestResults[1].TestCaseTitle, "PSD_Startseite");
            Assert.Equal(runData[0].TestResults[2].Outcome, "Passed");
            Assert.Equal(runData[0].TestResults[2].TestCaseTitle, "OrderedTest1");
        }
Beispiel #7
0
        public void CreateHtmlFile()
        {
            TrxParser     parser   = new TrxParser();
            var           result   = parser.Parse("VS2010.trx.xml");
            HtmlConverter html     = new HtmlConverter(result);
            string        fileName = Path.Combine(System.Environment.CurrentDirectory, @"newTrx2Html.html");

            using (TextWriter file = File.CreateText(fileName))
            {
                file.Write(html.GetHtml());
            }
            Process.Start("IExplore.exe", fileName);
        }
Beispiel #8
0
        public void File_given___correct_ResultSummary_total_failed(string trxFile, int expectedTotalCount, int expectedFailedCount)
        {
            XElement trx = XElement.Load(trxFile);
            var      sut = new TrxParser(trx);

            sut.Parse();
            Models.Test actual = sut.Result;

            Assert.Multiple(() =>
            {
                Assert.AreEqual(expectedTotalCount, actual.ResultSummary.Total, nameof(expectedTotalCount));
                Assert.AreEqual(expectedFailedCount, actual.ResultSummary.Failed, nameof(expectedFailedCount));
            });
        }
Beispiel #9
0
        public void File_given___correct_counts(string trxFile, int expectedUnitTestResultsCount, int expectedTestDefinitionsCount)
        {
            XElement trx = XElement.Load(trxFile);
            var      sut = new TrxParser(trx);

            sut.Parse();
            Models.Test actual = sut.Result;

            Assert.Multiple(() =>
            {
                Assert.AreEqual(expectedUnitTestResultsCount, actual.UnitTestResults.Count, nameof(expectedUnitTestResultsCount));
                Assert.AreEqual(expectedTestDefinitionsCount, actual.TestDefinitions.Count, nameof(expectedTestDefinitionsCount));
            });
        }
Beispiel #10
0
        public void File_given___correct_counts(string trxFile, int expectedTestCount, int expectedFailureCount)
        {
            XElement trx    = XElement.Load(trxFile);
            var      parser = new TrxParser(trx);

            parser.Parse();
            Models.Test testData = parser.Result;

            var sut = new JUnitBuilder(testData);

            sut.Build();
            XElement testsuite = sut.Result.Elements("testsuite").First();

            Assert.Multiple(() =>
            {
                Assert.AreEqual(expectedTestCount, int.Parse(testsuite.Attribute("tests").Value), nameof(expectedTestCount));
                Assert.AreEqual(expectedFailureCount, int.Parse(testsuite.Attribute("failures").Value), nameof(expectedFailureCount));
            });
        }
Beispiel #11
0
        public void ParseDev11()
        {
            TrxParser parser = new TrxParser();
            var       result = parser.Parse("Dev11.trx.xml");

            HtmlConverter html     = new HtmlConverter(result);
            string        fileName = Path.Combine(System.Environment.CurrentDirectory, @"newTrx2Html.html");

            using (TextWriter file = File.CreateText(fileName))
            {
                file.Write(html.GetHtml());
            }
            Process.Start("IExplore.exe", fileName);

            /*
             * Assert.AreEqual("Sample", result.Name);
             * Assert.AreEqual(1, result.Computers.Count());
             * Assert.AreEqual("RIDODEVBOX", result.Computers.First());
             * Assert.AreEqual(@"RIDODEVBOX\rido", result.UserName);
             * Assert.AreEqual(18, result.TestMethodRunList.Count(), "No se ha calculado el número total de TestMethods");
             **/
        }
Beispiel #12
0
        public void TestMethod1()
        {
            var res = new TrxParser().Parse("Duration.trx.xml");

            Assert.IsTrue(res.TimeTaken.TotalMilliseconds > 0);
        }
 public void SetUp()
 {
     target = new TrxWriter();
     parser = new TrxParser();
     target.SummaryCalculator = new SummaryCalculatorImpl();
     windowsFileHelper        = Stub <IWindowsFileHelper>();
     target.WindowsFileHelper = windowsFileHelper;
     files = new List <ResultFile>()
     {
         new ResultFile()
         {
             Summary = new ResultSummary()
             {
                 Outcome             = "Passed",
                 Total               = 1,
                 Executed            = 2,
                 Passed              = 3,
                 Failed              = 4,
                 Error               = 5,
                 Timeout             = 6,
                 Aborted             = 7,
                 Inconclusive        = 8,
                 PassedButRunAborted = 9,
                 NotRunnable         = 10,
                 NotExecuted         = 20,
                 Disconnected        = 30,
                 Warning             = 40,
                 Completed           = 50,
                 InProgress          = 60,
                 Pending             = 70,
                 StartTime           = new DateTime(2001, 1, 21),
                 FinishTime          = new DateTime(2001, 1, 22),
             },
             Results = new List <TestResult>()
             {
                 new TestResult()
                 {
                     TestName = "TEST_A1", ClassName = "CLASS_A1", Duration = "DURATION_A1", Outcome = "OUTCOME_A1", TestId = Guid.NewGuid()
                 },
                 new TestResult()
                 {
                     TestName = "TEST_A2", ClassName = "CLASS_A2", Duration = "DURATION_A2", Outcome = "OUTCOME_A2", TestId = Guid.NewGuid(), ErrorMessage = "ERROR_A2", StackTrace = "STACK_TRACE_A2"
                 },
                 new TestResult()
                 {
                     TestName = "TEST_A3", ClassName = "CLASS_A3", Duration = "DURATION_A3", Outcome = "OUTCOME_A3", TestId = Guid.NewGuid()
                 },
             }
         },
         new ResultFile()
         {
             Summary = new ResultSummary()
             {
                 Outcome             = "Failed",
                 Total               = 10,
                 Executed            = 20,
                 Passed              = 30,
                 Failed              = 40,
                 Error               = 50,
                 Timeout             = 60,
                 Aborted             = 70,
                 Inconclusive        = 80,
                 PassedButRunAborted = 90,
                 NotRunnable         = 100,
                 NotExecuted         = 200,
                 Disconnected        = 300,
                 Warning             = 400,
                 Completed           = 500,
                 InProgress          = 600,
                 Pending             = 700,
                 StartTime           = new DateTime(2002, 1, 21),
                 FinishTime          = new DateTime(2002, 1, 22),
             },
             Results = new List <TestResult>()
             {
                 new TestResult()
                 {
                     TestName = "TEST_B1", ClassName = "CLASS_B1", Duration = "DURATION_B1", Outcome = "OUTCOME_B1", TestId = Guid.NewGuid()
                 },
                 new TestResult()
                 {
                     TestName = "TEST_B2", ClassName = "CLASS_B2", Duration = "DURATION_B2", Outcome = "OUTCOME_B2", TestId = Guid.NewGuid(), ErrorMessage = "ERROR_B2", StackTrace = "STACK_TRACE_B2"
                 },
                 new TestResult()
                 {
                     TestName = "TEST_B3", ClassName = "CLASS_B3", Duration = "DURATION_B3", Outcome = "OUTCOME_B3", TestId = Guid.NewGuid()
                 },
             }
         },
         new ResultFile()
         {
             Summary = new ResultSummary()
             {
                 Outcome             = "Passed",
                 Total               = 100,
                 Executed            = 200,
                 Passed              = 300,
                 Failed              = 400,
                 Error               = 500,
                 Timeout             = 600,
                 Aborted             = 700,
                 Inconclusive        = 800,
                 PassedButRunAborted = 900,
                 NotRunnable         = 1000,
                 NotExecuted         = 2000,
                 Disconnected        = 3000,
                 Warning             = 4000,
                 Completed           = 5000,
                 InProgress          = 6000,
                 Pending             = 7000,
                 StartTime           = new DateTime(2003, 1, 21),
                 FinishTime          = new DateTime(2003, 1, 22),
             },
             Results = new List <TestResult>()
             {
                 new TestResult()
                 {
                     TestName = "TEST_C1", ClassName = "CLASS_C1", Duration = "DURATION_C1", Outcome = "OUTCOME_C1", TestId = Guid.NewGuid()
                 },
                 new TestResult()
                 {
                     TestName = "TEST_C2", ClassName = "CLASS_C2", Duration = "DURATION_C2", Outcome = "OUTCOME_C2", TestId = Guid.NewGuid(), ErrorMessage = "ERROR_C2", StackTrace = "STACK_TRACE_C2"
                 },
                 new TestResult()
                 {
                     TestName = "TEST_C3", ClassName = "CLASS_C3", Duration = "DURATION_C3", Outcome = "OUTCOME_C3", TestId = Guid.NewGuid()
                 },
             }
         }
     };
 }