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

IgnoreTestCommand.cs 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using System;
  2. using System.Collections;
  3. using NUnit.Framework.Interfaces;
  4. using NUnit.Framework.Internal;
  5. using NUnit.Framework.Internal.Commands;
  6. using UnityEngine.TestRunner.NUnitExtensions;
  7. using UnityEngine.TestRunner.NUnitExtensions.Runner;
  8. namespace UnityEngine.TestTools
  9. {
  10. internal class IgnoreTestCommand : DelegatingTestCommand, IEnumerableTestMethodCommand
  11. {
  12. private ITest _test;
  13. public IgnoreTestCommand(TestCommand innerCommand, ITest test) : base(innerCommand)
  14. {
  15. _test = test;
  16. }
  17. public override TestResult Execute(ITestExecutionContext context)
  18. {
  19. throw new NotImplementedException("Use ExecuteEnumerable");
  20. }
  21. public IEnumerable ExecuteEnumerable(ITestExecutionContext context)
  22. {
  23. var ignoreTests = ((UnityTestExecutionContext) context).IgnoreTests;
  24. if (ignoreTests != null && ignoreTests.Length > 0)
  25. {
  26. var fullName = _test.GetFullNameWithoutDllPath();
  27. foreach (var ignoreTest in ignoreTests)
  28. {
  29. if (ignoreTest.test.Equals(fullName))
  30. {
  31. context.CurrentResult.SetResult(ResultState.Ignored,ignoreTest.ignoreComment);
  32. yield break;
  33. }
  34. }
  35. }
  36. if (innerCommand is IEnumerableTestMethodCommand)
  37. {
  38. var executeEnumerable = ((IEnumerableTestMethodCommand)innerCommand).ExecuteEnumerable(context);
  39. foreach (var iterator in executeEnumerable)
  40. {
  41. yield return iterator;
  42. }
  43. }
  44. else
  45. {
  46. context.CurrentResult = innerCommand.Execute(context);
  47. }
  48. }
  49. }
  50. }