1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- using System;
- using System.Reflection;
- using System.Text;
- using NUnit.Framework.Interfaces;
- using UnityEngine.TestRunner.NUnitExtensions.Runner;
-
- namespace UnityEngine.TestTools
- {
- [Serializable]
- internal class BeforeAfterTestCommandState
- {
- private const BindingFlags Flags = BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.FlattenHierarchy;
- public int NextBeforeStepIndex;
- public int NextBeforeStepPc;
- public int NextAfterStepIndex;
- public int NextAfterStepPc;
- public bool TestHasRun;
- public TestStatus CurrentTestResultStatus;
- public string CurrentTestResultLabel;
- public FailureSite CurrentTestResultSite;
- public string CurrentTestMessage;
- public string CurrentTestStrackTrace;
- public bool TestAfterStarted;
- public string Output;
- public long StartTicks;
- public double StartTimeOA;
- public bool ShouldRestore;
-
- public void Reset()
- {
- NextBeforeStepIndex = 0;
- NextBeforeStepPc = 0;
- NextAfterStepIndex = 0;
- NextAfterStepPc = 0;
- TestHasRun = false;
- CurrentTestResultStatus = TestStatus.Inconclusive;
- CurrentTestResultLabel = null;
- CurrentTestResultSite = default(FailureSite);
- CurrentTestMessage = null;
- CurrentTestStrackTrace = null;
- TestAfterStarted = false;
- Output = null;
- StartTicks = 0;
- StartTimeOA = 0;
- ShouldRestore = false;
- }
-
- public void StoreContext(UnityTestExecutionContext context)
- {
- var result = context.CurrentResult;
- CurrentTestResultStatus = result.ResultState.Status;
- CurrentTestResultLabel = result.ResultState.Label;
- CurrentTestResultSite = result.ResultState.Site;
- CurrentTestMessage = result.Message;
- CurrentTestStrackTrace = result.StackTrace;
- Output = result.Output;
- StartTicks = context.StartTicks;
- StartTimeOA = context.StartTime.ToOADate();
- ShouldRestore = true;
- }
-
- public void ApplyContext(UnityTestExecutionContext context)
- {
- var outputProp = context.CurrentResult.GetType().BaseType.GetField("_output", Flags);
- var stringBuilder = (outputProp.GetValue(context.CurrentResult) as StringBuilder);
- stringBuilder.Clear();
- stringBuilder.Append(Output);
- context.StartTicks = StartTicks;
- context.StartTime = DateTime.FromOADate(StartTimeOA);
- context.CurrentResult.SetResult(new ResultState(CurrentTestResultStatus, CurrentTestResultLabel, CurrentTestResultSite), CurrentTestMessage, CurrentTestStrackTrace);
- ShouldRestore = false;
- }
- }
- }
|