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"); } }
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); }
//--------------------------------------------------------------------- private Models.Test ParseCore(string fileName) { XElement trx = XElement.Load(fileName); var sut = new TrxParser(trx); sut.Parse(); return(sut.Result); }
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); }
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"); }
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); }
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)); }); }
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)); }); }
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)); }); }
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"); **/ }
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() }, } } }; }