53 lines
1.4 KiB
C#
53 lines
1.4 KiB
C#
|
using System;
|
||
|
using System.Collections;
|
||
|
using NUnit.Framework;
|
||
|
using NUnit.Framework.Interfaces;
|
||
|
using NUnit.Framework.Internal;
|
||
|
|
||
|
namespace UnityEngine.TestTools
|
||
|
{
|
||
|
internal class TestEnumerator
|
||
|
{
|
||
|
private readonly ITestExecutionContext m_Context;
|
||
|
private static IEnumerator m_TestEnumerator;
|
||
|
|
||
|
public static IEnumerator Enumerator { get { return m_TestEnumerator; } }
|
||
|
|
||
|
public TestEnumerator(ITestExecutionContext context, IEnumerator testEnumerator)
|
||
|
{
|
||
|
m_Context = context;
|
||
|
m_TestEnumerator = testEnumerator;
|
||
|
}
|
||
|
|
||
|
public IEnumerator Execute()
|
||
|
{
|
||
|
m_Context.CurrentResult.SetResult(ResultState.Success);
|
||
|
|
||
|
while (true)
|
||
|
{
|
||
|
object current = null;
|
||
|
try
|
||
|
{
|
||
|
if (!m_TestEnumerator.MoveNext())
|
||
|
{
|
||
|
yield break;
|
||
|
}
|
||
|
|
||
|
if (!m_Context.CurrentResult.ResultState.Equals(ResultState.Success))
|
||
|
{
|
||
|
yield break;
|
||
|
}
|
||
|
|
||
|
current = m_TestEnumerator.Current;
|
||
|
}
|
||
|
catch (Exception exception)
|
||
|
{
|
||
|
m_Context.CurrentResult.RecordException(exception);
|
||
|
yield break;
|
||
|
}
|
||
|
yield return current;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|