UnityGame/Library/PackageCache/com.unity.test-framework/UnityEditor.TestRunner/TestRun/Tasks/GenerateContextTask.cs
2024-10-27 10:53:47 +03:00

51 lines
1.9 KiB
C#

using System;
using System.Collections;
using System.Linq;
using UnityEditor.TestTools.TestRunner.UnityTestProtocol;
using UnityEngine;
using UnityEngine.TestRunner.NUnitExtensions.Runner;
using UnityEngine.TestTools;
namespace UnityEditor.TestTools.TestRunner.TestRun.Tasks
{
internal class GenerateContextTask : TestTaskBase
{
public GenerateContextTask()
{
RerunAfterResume = true;
}
public override IEnumerator Execute(TestJobData testJobData)
{
if (testJobData.taskInfoStack.Peek().taskMode == TaskMode.Normal)
{
testJobData.setUpTearDownState = new BeforeAfterTestCommandState();
testJobData.outerUnityTestActionState = new BeforeAfterTestCommandState();
testJobData.enumerableTestState = new EnumerableTestState();
}
testJobData.Context = new UnityTestExecutionContext()
{
SetUpTearDownState = testJobData.setUpTearDownState,
OuterUnityTestActionState = testJobData.outerUnityTestActionState,
EnumerableTestState = testJobData.enumerableTestState,
Automated = UnityTestProtocolStarter.IsEnabled(),
RetryCount = testJobData.executionSettings.retryCount,
RepeatCount = testJobData.executionSettings.repeatCount,
RetryRepeatState = testJobData.RetryRepeatState
};
if (testJobData.executionSettings.ignoreTests != null)
{
testJobData.Context.IgnoreTests = testJobData.executionSettings.ignoreTests.Select(ignoreTest => ignoreTest.ParseToEngine()).ToArray();
}
testJobData.Context.FeatureFlags = testJobData.executionSettings.featureFlags;
UnityTestExecutionContext.CurrentContext = testJobData.Context;
yield break;
}
}
}