docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class UnitySetUpAttribute

    The UnitySetUp and UnityTearDownAttribute attributes are identical to the standard SetUp and TearDown attributes, with the exception that they allow for IEditModeTestYieldInstruction. The UnitySetUp and UnityTearDown attributes expect a return type of IEnumerator.

    Inheritance
    object
    Attribute
    NUnitAttribute
    UnitySetUpAttribute
    Inherited Members
    Attribute.Equals(object)
    Attribute.GetCustomAttribute(Assembly, Type)
    Attribute.GetCustomAttribute(Assembly, Type, bool)
    Attribute.GetCustomAttribute(MemberInfo, Type)
    Attribute.GetCustomAttribute(MemberInfo, Type, bool)
    Attribute.GetCustomAttribute(Module, Type)
    Attribute.GetCustomAttribute(Module, Type, bool)
    Attribute.GetCustomAttribute(ParameterInfo, Type)
    Attribute.GetCustomAttribute(ParameterInfo, Type, bool)
    Attribute.GetCustomAttributes(Assembly)
    Attribute.GetCustomAttributes(Assembly, bool)
    Attribute.GetCustomAttributes(Assembly, Type)
    Attribute.GetCustomAttributes(Assembly, Type, bool)
    Attribute.GetCustomAttributes(MemberInfo)
    Attribute.GetCustomAttributes(MemberInfo, bool)
    Attribute.GetCustomAttributes(MemberInfo, Type)
    Attribute.GetCustomAttributes(MemberInfo, Type, bool)
    Attribute.GetCustomAttributes(Module)
    Attribute.GetCustomAttributes(Module, bool)
    Attribute.GetCustomAttributes(Module, Type)
    Attribute.GetCustomAttributes(Module, Type, bool)
    Attribute.GetCustomAttributes(ParameterInfo)
    Attribute.GetCustomAttributes(ParameterInfo, bool)
    Attribute.GetCustomAttributes(ParameterInfo, Type)
    Attribute.GetCustomAttributes(ParameterInfo, Type, bool)
    Attribute.GetHashCode()
    Attribute.IsDefaultAttribute()
    Attribute.IsDefined(Assembly, Type)
    Attribute.IsDefined(Assembly, Type, bool)
    Attribute.IsDefined(MemberInfo, Type)
    Attribute.IsDefined(MemberInfo, Type, bool)
    Attribute.IsDefined(Module, Type)
    Attribute.IsDefined(Module, Type, bool)
    Attribute.IsDefined(ParameterInfo, Type)
    Attribute.IsDefined(ParameterInfo, Type, bool)
    Attribute.Match(object)
    Attribute.TypeId
    object.Equals(object, object)
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: UnityEngine.TestTools
    Assembly: UnityEngine.TestRunner.dll
    Syntax
    [AttributeUsage(AttributeTargets.Method)]
    public class UnitySetUpAttribute : NUnitAttribute
    Examples
    public class SetUpTearDownExample
    {
        [UnitySetUp]
        public IEnumerator SetUp()
        {
            yield return new EnterPlayMode();
        }
    
        [Test]
        public void MyTest()
        {
            Debug.Log("This runs inside playmode");
        }
    
        [UnityTearDown]
        public IEnumerator TearDown()
        {
            yield return new ExitPlayMode();
        }
    }

    Base and Derived class example

    public class BaseClass
    {
       [OneTimeSetUp]
       public void OneTimeSetUp()
       {
          Debug.Log("OneTimeSetUp Base");
       }
    
       [SetUp]
       public void SetUp()
       {
          Debug.Log("SetUp Base");
       }
    
       [UnitySetUp]
       public IEnumerator UnitySetUp()
       {
          Debug.Log("UnitySetup Base");
          yield return null;
       }
    
       [TearDown]
       public void TearDown()
       {
          Debug.Log("TearDown Base");
       }
    
       [UnityTearDown]
       public IEnumerator UnityTearDown()
       {
          Debug.Log("UnityTearDown Base");
          yield return null;
       }
    }
    
    public class DerivedClass : BaseClass
    {
       [OneTimeSetUp]
       public new void OneTimeSetUp()
       {
          Debug.Log("OneTimeSetUp");
       }
    
       [SetUp]
       public new void SetUp()
       {
          Debug.Log("SetUp");
       }
    
       [UnitySetUp]
       public new IEnumerator UnitySetUp()
       {
          Debug.Log("UnitySetup");
          yield return null;
       }
    
       [Test]
       public void UnitTest()
       {
          Debug.Log("Test");
       }
    
       [UnityTest]
       public IEnumerator UnityTest()
       {
          Debug.Log("UnityTest before yield");
          yield return null;
          Debug.Log("UnityTest after yield");
       }
    
       [TearDown]
       public new void TearDown()
       {
          Debug.Log("TearDown");
       }
    
       [UnityTearDown]
       public new IEnumerator UnityTearDown()
       {
          Debug.Log("UnityTearDown");
          yield return null;
       }
    
       [OneTimeTearDown]
       public void OneTimeTearDown()
       {
          Debug.Log("OneTimeTearDown");
       }
    }

    Domain reload example

    public class BaseClass
    {
       [OneTimeSetUp]
       public void OneTimeSetUp()
       {
          Debug.Log("OneTimeSetUp Base");
       }
    
       [SetUp]
       public void SetUp()
       {
          Debug.Log("SetUp Base");
       }
    
       [UnitySetUp]
       public IEnumerator UnitySetUp()
       {
          Debug.Log("UnitySetup Base");
          yield return null;
       }
    
       [TearDown]
       public void TearDown()
       {
          Debug.Log("TearDown Base");
       }
    
       [UnityTearDown]
       public IEnumerator UnityTearDown()
       {
          Debug.Log("UnityTearDown Base");
          yield return null;
       }
    }
    
    public class DerivedClass : BaseClass
    {
       [OneTimeSetUp]
       public new void OneTimeSetUp()
       {
          Debug.Log("OneTimeSetUp");
       }
    
       [SetUp]
       public new void SetUp()
       {
          Debug.Log("SetUp");
       }
    
       [UnitySetUp]
       public new IEnumerator UnitySetUp()
       {
          Debug.Log("UnitySetup");
          yield return null;
       }
    
       [Test]
       public void UnitTest()
       {
          Debug.Log("Test");
       }
    
       [UnityTest]
       public IEnumerator UnityTest()
       {
          Debug.Log("UnityTest before yield");
          yield return new EnterPlayMode();
          //Domain reload happening
          yield return new ExitPlayMode();
          Debug.Log("UnityTest after yield");
       }
    
       [TearDown]
       public new void TearDown()
       {
          Debug.Log("TearDown");
       }
    
       [UnityTearDown]
       public new IEnumerator UnityTearDown()
       {
          Debug.Log("UnityTearDown");
          yield return null;
       }
    
       [OneTimeTearDown]
       public void OneTimeTearDown()
       {
          Debug.Log("OneTimeTearDown");
       }
    }
    In This Article
    Back to top
    Copyright © 2024 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)