/
TON618OFF
/
Unity-Project-RTU
Обзор
Документация
Войти
/
TON618OFF
/
Unity-Project-RTU
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Library/PackageCache/com.unity.test-framework@1.1.33/UnityEngine.TestRunner/NUnitExtensions/Runner/DefaultTestWorkItem.cs
98 строк
3 KB
TON618OFF
release
03 окт 2024, 22:20
03 окт 2024, 22:20
7c70e9f
Код
Авторство
О чём код?
using System; using System.Collections; using System.Linq; using NUnit.Framework.Interfaces; using NUnit.Framework.Internal; using NUnit.Framework.Internal.Commands; using NUnit.Framework.Internal.Execution; using UnityEngine.TestTools; using SetUpTearDownCommand = NUnit.Framework.Internal.Commands.SetUpTearDownCommand; using TestActionCommand = NUnit.Framework.Internal.Commands.TestActionCommand; namespace UnityEngine.TestRunner.NUnitExtensions.Runner { internal class EditModeTestCallbacks { public static Action RestoringTestContext { get; set; } } internal class DefaultTestWorkItem : UnityWorkItem { private TestCommand _command; public DefaultTestWorkItem(TestMethod test, ITestFilter filter) : base(test, null) { _command = TestCommandBuilder.BuildTestCommand(test, filter); } protected override IEnumerable PerformWork() { if (m_DontRunRestoringResult && EditModeTestCallbacks.RestoringTestContext != null) { EditModeTestCallbacks.RestoringTestContext(); Result = Context.CurrentResult; yield break; } try { if (_command is SkipCommand || _command is FailCommand) { Result = _command.Execute(Context); yield break; } if (!(_command is IEnumerableTestMethodCommand)) { Debug.LogError("Cannot perform work on " + _command.GetType().Name); yield break; } if (Context.TestCaseTimeout == 0) { Context.TestCaseTimeout = k_DefaultTimeout; } foreach (var workItemStep in ((IEnumerableTestMethodCommand)_command).ExecuteEnumerable(Context)) { ResultedInDomainReload = false; if (workItemStep is IEditModeTestYieldInstruction) { var editModeTestYieldInstruction = (IEditModeTestYieldInstruction)workItemStep; yield return editModeTestYieldInstruction; var enumerator = editModeTestYieldInstruction.Perform(); while (true) { bool moveNext; try { moveNext = enumerator.MoveNext(); } catch (Exception e) { Context.CurrentResult.RecordException(e); break; } if (!moveNext) { break; } yield return null; } } else { yield return workItemStep; } } Result = Context.CurrentResult; } finally { WorkItemComplete(); } } } }