{!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} Interface IOuterUnityTestAction | Test Framework | 2.0.1-exp.2
docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Interface IOuterUnityTestAction

    An attribute can implement this interface to provide actions to execute before setup and after teardown of tests.

    Namespace: UnityEngine.TestTools
    Assembly: solution.dll
    Syntax
    public interface IOuterUnityTestAction
    Examples

    IOuterUnityTestAction Example

    using System.Collections;
    using NUnit.Framework;
    using NUnit.Framework.Interfaces;
    using UnityEngine;
    using UnityEngine.TestTools;
    
    public class MyTestClass
    {
       [UnityTest, MyOuterActionAttribute]
       public IEnumerator MyTestInsidePlaymode()
       {
           Assert.IsTrue(Application.isPlaying);
           yield return null;
       }
    }
    
    public class MyOuterActionAttribute : NUnitAttribute, IOuterUnityTestAction
    {
       public IEnumerator BeforeTest(ITest test)
       {
           yield return new EnterPlayMode();
       }
    
       public IEnumerator AfterTest(ITest test)
       {
           yield return new ExitPlayMode();
       }
    }

    Test actions with domain reload example

    using NUnit.Framework.Interfaces;
    
    
    public class TestActionOnSuiteAttribute : NUnitAttribute, ITestAction
    {
       public void BeforeTest(ITest test)
       {
           Debug.Log("TestAction OnSuite BeforeTest");
       }
    
       public void AfterTest(ITest test)
       {
       }
    
       public ActionTargets Targets { get { return ActionTargets.Suite; } }
    }
    
    public class TestActionOnTestAttribute : NUnitAttribute, ITestAction
    {
       public void BeforeTest(ITest test)
       {
           Debug.Log("TestAction OnTest BeforeTest");
       }
    
       public void AfterTest(ITest test)
       {
           Debug.Log("TestAction OnTest AfterTest");
       }
    
       public ActionTargets Targets { get { return ActionTargets.Test; } }
    }
    
    public class OuterTestAttribute : NUnitAttribute, IOuterUnityTestAction
    {
       public IEnumerator BeforeTest(ITest test)
       {
           Debug.Log("OuterTestAttribute BeforeTest");
           yield return null;
       }
    
       public IEnumerator AfterTest(ITest test)
       {
           Debug.Log("OuterTestAttribute AfterTest");
           yield return null;
       }
    }
    
    [TestActionOnSuite]
    public class ActionOrderTestBase
    {
       [Test, OuterTest, TestActionOnTest]
       public void UnitTest()
       {
           Debug.Log("Test");
       }
    
       [UnityTest, OuterTest, TestActionOnTest]
       public IEnumerator UnityTestWithDomainReload()
       {
           Log("Test part 1");
           yield return new EnterPlayMode();
           //Domain reload
           yield return new ExitPlayMode();
           Log("Test part 2");
       }
    }

    Methods

    Name Description
    AfterTest(ITest)

    Executed after each test is run

    BeforeTest(ITest)

    Executed before each test is run

    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)