暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

TestResultAdaptor.cs 4.0KB

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