{!See https://docs.google.com/document/d/1takg_GmIBBKKTj-GHZCwzxohpQz7Bhekivkk72kYMtE/edit for reference implementation of OneTrust, dataLayer and GTM} {!OneTrust Cookies Consent} {!OneTrust Cookies Consent end} {!dataLayer initialization push} {!dataLayer initialization push end} {!Google Tag Manager} {!Google Tag Manager end} Class UnitySetUpAttribute | Test Framework | 2.0.1-exp.2
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
    UnitySetUpAttribute
    Namespace: UnityEngine.TestTools
    Assembly: solution.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 © 2023 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)