1
1
Ответвление 0
InsAsterix/InsAsterix/Library/PackageCache/com.unity.test-framework@1.1.31/UnityEditor.TestRunner/NUnitExtension/Attributes/AssetPipelineIgnore.cs
2023-03-24 19:26:04 +01:00

63 строки
2,3 КиБ
C#

using System;
using NUnit.Framework;
using NUnit.Framework.Interfaces;
using NUnit.Framework.Internal;
namespace UnityEditor.TestTools
{
/// <summary>
/// Ignore attributes dedicated to Asset Import Pipeline backend version handling.
/// </summary>
internal static class AssetPipelineIgnore
{
internal enum AssetPipelineBackend
{
V1,
V2
}
/// <summary>
/// Ignore the test when running with the legacy Asset Import Pipeline V1 backend.
/// </summary>
internal class IgnoreInV1 : AssetPipelineIgnoreAttribute
{
public IgnoreInV1(string ignoreReason) : base(AssetPipelineBackend.V1, ignoreReason) {}
}
/// <summary>
/// Ignore the test when running with the latest Asset Import Pipeline V2 backend.
/// </summary>
internal class IgnoreInV2 : AssetPipelineIgnoreAttribute
{
public IgnoreInV2(string ignoreReason) : base(AssetPipelineBackend.V2, ignoreReason) {}
}
[AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Method)]
internal class AssetPipelineIgnoreAttribute : NUnitAttribute, IApplyToTest
{
readonly string m_IgnoreReason;
readonly AssetPipelineBackend m_IgnoredBackend;
static readonly AssetPipelineBackend k_ActiveBackend = AssetDatabase.IsV2Enabled()
? AssetPipelineBackend.V2
: AssetPipelineBackend.V1;
static string ActiveBackendName = Enum.GetName(typeof(AssetPipelineBackend), k_ActiveBackend);
public AssetPipelineIgnoreAttribute(AssetPipelineBackend backend, string ignoreReason)
{
m_IgnoredBackend = backend;
m_IgnoreReason = ignoreReason;
}
public void ApplyToTest(Test test)
{
if (k_ActiveBackend == m_IgnoredBackend)
{
test.RunState = RunState.Ignored;
var skipReason = string.Format("Not supported by asset pipeline {0} backend {1}", ActiveBackendName, m_IgnoreReason);
test.Properties.Add(PropertyNames.SkipReason, skipReason);
}
}
}
}
}