130 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections;
 | |
| using NUnit.Framework.Interfaces;
 | |
| 
 | |
| namespace UnityEngine.TestTools
 | |
| {
 | |
|     /// <summary>
 | |
|     /// An attribute can implement this interface to provide actions to execute before setup and after teardown of tests.
 | |
|     /// </summary>
 | |
|     /// <example>
 | |
|     /// <para>## IOuterUnityTestAction Example</para>
 | |
|     /// <code>
 | |
|     /// // 
 | |
|     /// <![CDATA[
 | |
|     /// 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();
 | |
|     ///    }
 | |
|     /// }
 | |
|     /// ]]>
 | |
|     /// </code>
 | |
|     /// <para>Test actions with domain reload example</para>
 | |
|     /// <code>
 | |
|     /// <![CDATA[
 | |
|     /// 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");
 | |
|     ///    }
 | |
|     /// }
 | |
|     /// ]]>
 | |
|     /// </code>
 | |
|     /// </example>
 | |
|     public interface IOuterUnityTestAction
 | |
|     {
 | |
|         /// <summary>Executed before each test is run</summary>
 | |
|         /// <param name="test">The test that is going to be run.</param>
 | |
|         /// <returns>Enumerable collection of actions to perform before test setup.</returns>
 | |
|         IEnumerator BeforeTest(ITest test);
 | |
| 
 | |
|         /// <summary>Executed after each test is run</summary>
 | |
|         /// <param name="test">The test that has just been run.</param>
 | |
|         /// <returns>Enumerable collection of actions to perform after test teardown.</returns>
 | |
|         IEnumerator AfterTest(ITest test);
 | |
|     }
 | |
| }
 |