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: UnityEngine.TestRunner.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

    AfterTest(ITest)

    Executed after each test is run

    Declaration
    IEnumerator AfterTest(ITest test)
    Parameters
    Type Name Description
    ITest test

    The test that has just been run.

    Returns
    Type Description
    IEnumerator

    Enumerable collection of actions to perform after test teardown.

    BeforeTest(ITest)

    Executed before each test is run

    Declaration
    IEnumerator BeforeTest(ITest test)
    Parameters
    Type Name Description
    ITest test

    The test that is going to be run.

    Returns
    Type Description
    IEnumerator

    Enumerable collection of actions to perform before test setup.

    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)