diff options
Diffstat (limited to 'Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/RequireApiProfileAttribute.cs')
| -rw-r--r-- | Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/RequireApiProfileAttribute.cs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/RequireApiProfileAttribute.cs b/Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/RequireApiProfileAttribute.cs new file mode 100644 index 0000000..090f218 --- /dev/null +++ b/Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/RequireApiProfileAttribute.cs @@ -0,0 +1,32 @@ +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);
+ }
+ }
+ }
+}
|
