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 |