123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 |
- using System;
- using NUnit.Framework;
-
- namespace UnityEngine.TestTools
- {
- /// <summary>
- /// The `UnitySetUp` and <see cref="UnityTearDownAttribute"/> attributes are identical to the standard `SetUp` and `TearDown` attributes, with the exception that they allow for <see cref="IEditModeTestYieldInstruction"/>. The `UnitySetUp` and `UnityTearDown` attributes expect a return type of [IEnumerator](https://docs.microsoft.com/en-us/dotnet/api/system.collections.ienumerator?view=netframework-4.8).
- /// </summary>
- /// <example>
- /// <code>
- /// <![CDATA[
- /// 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();
- /// }
- /// }
- /// ]]>
- /// </code>
- /// </example>
- /// <example>
- /// ## Base and Derived class example
- /// <code>
- /// <![CDATA[
- /// 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");
- /// }
- /// }
- /// ]]>
- /// </code>
- /// </example>
- /// <example>
- /// ## Domain reload example
- /// <code>
- /// <![CDATA[
- /// 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");
- /// }
- /// }
- /// ]]>
- /// </code>
- /// </example>
- [AttributeUsage(AttributeTargets.Method)]
- public class UnitySetUpAttribute : NUnitAttribute
- {
- }
- }
|