You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1.3 KiB
32 lines
1.3 KiB
using System; |
|
using System.Linq; |
|
using NUnit.Framework; |
|
using NUnit.Framework.Interfaces; |
|
using NUnit.Framework.Internal; |
|
|
|
namespace UnityEditor.TestTools |
|
{ |
|
[AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Method)] |
|
internal class RequireApiProfileAttribute : NUnitAttribute, IApplyToTest |
|
{ |
|
public ApiCompatibilityLevel[] apiProfiles { get; private set; } |
|
|
|
public RequireApiProfileAttribute(params ApiCompatibilityLevel[] apiProfiles) |
|
{ |
|
this.apiProfiles = apiProfiles; |
|
} |
|
|
|
void IApplyToTest.ApplyToTest(Test test) |
|
{ |
|
test.Properties.Add(PropertyNames.Category, string.Format("ApiProfile({0})", string.Join(", ", apiProfiles.Select(p => p.ToString()).OrderBy(p => p).ToArray()))); |
|
ApiCompatibilityLevel testProfile = PlayerSettings.GetApiCompatibilityLevel(EditorUserBuildSettings.activeBuildTargetGroup); |
|
|
|
if (!apiProfiles.Contains(testProfile)) |
|
{ |
|
string skipReason = "Skipping test as it requires a compatible api profile set: " + string.Join(", ", apiProfiles.Select(p => p.ToString()).ToArray()); |
|
test.RunState = RunState.Skipped; |
|
test.Properties.Add(PropertyNames.SkipReason, skipReason); |
|
} |
|
} |
|
} |
|
}
|
|
|