docs.unity.cn
    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
    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.

    Back to top Copyright © 2022 Unity Technologies
    Generated by DocFX
    on Monday, November 14, 2022
    Terms of use