TestResultAdaptor.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using NUnit.Framework.Interfaces;
  5. using UnityEngine.TestRunner.TestLaunchers;
  6. namespace UnityEditor.TestTools.TestRunner.Api
  7. {
  8. internal class TestResultAdaptor : ITestResultAdaptor
  9. {
  10. private TNode m_Node;
  11. internal TestResultAdaptor(ITestResult result, ITestAdaptor test, ITestResultAdaptor[] children = null)
  12. {
  13. Test = test;
  14. Name = result.Name;
  15. FullName = result.FullName;
  16. ResultState = result.ResultState.ToString();
  17. TestStatus = ParseTestStatus(result.ResultState.Status);
  18. Duration = result.Duration;
  19. StartTime = result.StartTime;
  20. EndTime = result.EndTime;
  21. Message = result.Message;
  22. StackTrace = result.StackTrace;
  23. AssertCount = result.AssertCount;
  24. FailCount = result.FailCount;
  25. PassCount = result.PassCount;
  26. SkipCount = result.SkipCount;
  27. InconclusiveCount = result.InconclusiveCount;
  28. HasChildren = result.HasChildren;
  29. Output = result.Output;
  30. Children = children;
  31. m_Node = result.ToXml(true);
  32. }
  33. internal TestResultAdaptor(RemoteTestResultData result, RemoteTestResultDataWithTestData allData)
  34. {
  35. Test = new TestAdaptor(allData.tests.First(t => t.id == result.testId));
  36. Name = result.name;
  37. FullName = result.fullName;
  38. ResultState = result.resultState;
  39. TestStatus = ParseTestStatus(result.testStatus);
  40. Duration = result.duration;
  41. StartTime = result.startTime;
  42. EndTime = result.endTime;
  43. Message = result.message;
  44. StackTrace = result.stackTrace;
  45. AssertCount = result.assertCount;
  46. FailCount = result.failCount;
  47. PassCount = result.passCount;
  48. SkipCount = result.skipCount;
  49. InconclusiveCount = result.inconclusiveCount;
  50. HasChildren = result.hasChildren;
  51. Output = result.output;
  52. Children = result.childrenIds.Select(childId => new TestResultAdaptor(allData.results.First(r => r.testId == childId), allData)).ToArray();
  53. m_Node = TNode.FromXml(result.xml);
  54. }
  55. public ITestAdaptor Test { get; private set; }
  56. public string Name { get; private set; }
  57. public string FullName { get; private set; }
  58. public string ResultState { get; private set; }
  59. public TestStatus TestStatus { get; private set; }
  60. public double Duration { get; private set; }
  61. public DateTime StartTime { get; private set; }
  62. public DateTime EndTime { get; private set; }
  63. public string Message { get; private set; }
  64. public string StackTrace { get; private set; }
  65. public int AssertCount { get; private set; }
  66. public int FailCount { get; private set; }
  67. public int PassCount { get; private set; }
  68. public int SkipCount { get; private set; }
  69. public int InconclusiveCount { get; private set; }
  70. public bool HasChildren { get; private set; }
  71. public IEnumerable<ITestResultAdaptor> Children { get; private set; }
  72. public string Output { get; private set; }
  73. public TNode ToXml()
  74. {
  75. return m_Node;
  76. }
  77. private static TestStatus ParseTestStatus(NUnit.Framework.Interfaces.TestStatus testStatus)
  78. {
  79. return (TestStatus)Enum.Parse(typeof(TestStatus), testStatus.ToString());
  80. }
  81. }
  82. }