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.

TestTaskBase.cs 2.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using System;
  2. using System.Collections;
  3. using UnityEngine;
  4. using System.Linq;
  5. namespace UnityEditor.TestTools.TestRunner.TestRun.Tasks
  6. {
  7. internal abstract class TestTaskBase
  8. {
  9. public ErrorRunMode RunOnError = ErrorRunMode.DoNotRunOnError;
  10. public bool RerunAfterResume;
  11. public bool RerunAfterEnteredEditMode;
  12. public bool SupportsResumingEnumerator;
  13. public bool RunOnCancel;
  14. public bool CanRunInstantly = true;
  15. public abstract IEnumerator Execute(TestJobData testJobData);
  16. public enum ErrorRunMode
  17. {
  18. DoNotRunOnError,
  19. RunOnlyOnError,
  20. RunAlways
  21. }
  22. public virtual string GetName()
  23. {
  24. return GetType().Name;
  25. }
  26. public string GetTitle()
  27. {
  28. var name = GetName();
  29. if (name.EndsWith("Task")) // Trim away the Task part of the title in the end.
  30. {
  31. name = name.Substring(0, name.Length - 4);
  32. }
  33. var title = string.Empty;
  34. for (var i = 0; i < name.Length; i++)
  35. {
  36. var nameChar = name[i];
  37. if (i == 0 || (nameChar >= 'a' && nameChar <= 'z'))
  38. {
  39. title += nameChar;
  40. }
  41. else
  42. {
  43. title += " " + nameChar;
  44. }
  45. }
  46. return title;
  47. }
  48. public bool ShouldExecute(TaskInfo taskInfo)
  49. {
  50. switch (taskInfo.taskMode)
  51. {
  52. case TaskMode.Error:
  53. return RunOnError == ErrorRunMode.RunAlways || RunOnError == ErrorRunMode.RunOnlyOnError;
  54. case TaskMode.Resume:
  55. return RerunAfterResume;
  56. case TaskMode.EnteredEditMode:
  57. return RerunAfterEnteredEditMode;
  58. case TaskMode.Canceled:
  59. return RunOnCancel;
  60. default:
  61. return RunOnError != ErrorRunMode.RunOnlyOnError;
  62. }
  63. }
  64. protected static bool IsAutomated()
  65. {
  66. var commandLineArgs = Environment.GetCommandLineArgs();
  67. return commandLineArgs.Contains("-automated");
  68. }
  69. }
  70. }