No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

RemoteTestResultDataFactory.cs 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using NUnit.Framework.Interfaces;
  5. using UnityEngine.TestRunner.NUnitExtensions.Runner;
  6. namespace UnityEngine.TestRunner.TestLaunchers
  7. {
  8. internal class RemoteTestResultDataFactory : IRemoteTestResultDataFactory
  9. {
  10. public RemoteTestResultDataWithTestData CreateFromTestResult(ITestResult result)
  11. {
  12. var tests = CreateTestDataList(result.Test);
  13. tests.First().testCaseTimeout = UnityTestExecutionContext.CurrentContext.TestCaseTimeout;
  14. return new RemoteTestResultDataWithTestData
  15. {
  16. results = CreateTestResultDataList(result),
  17. tests = tests
  18. };
  19. }
  20. public RemoteTestResultDataWithTestData CreateFromTest(ITest test)
  21. {
  22. var tests = CreateTestDataList(test);
  23. if (UnityTestExecutionContext.CurrentContext != null)
  24. {
  25. tests.First().testCaseTimeout = UnityTestExecutionContext.CurrentContext.TestCaseTimeout;
  26. }
  27. return new RemoteTestResultDataWithTestData
  28. {
  29. tests = tests
  30. };
  31. }
  32. private RemoteTestData[] CreateTestDataList(ITest test)
  33. {
  34. var list = new List<RemoteTestData>();
  35. list.Add(new RemoteTestData(test));
  36. list.AddRange(test.Tests.SelectMany(CreateTestDataList));
  37. return list.ToArray();
  38. }
  39. private static RemoteTestResultData[] CreateTestResultDataList(ITestResult result)
  40. {
  41. var list = new List<RemoteTestResultData>();
  42. list.Add(new RemoteTestResultData(result, result.Test.Parent == null));
  43. list.AddRange(result.Children.SelectMany(CreateTestResultDataList));
  44. return list.ToArray();
  45. }
  46. }
  47. }