57 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using UnityEngine.TestRunner;
 | |
| using Unity.PerformanceTesting;
 | |
| using NUnit.Framework;
 | |
| using NUnit.Framework.Interfaces;
 | |
| using Unity.PerformanceTesting.Data;
 | |
| using Unity.PerformanceTesting.Runtime;
 | |
| using UnityEngine.Scripting;
 | |
| using UnityEngine;
 | |
| 
 | |
| [assembly: TestRunCallback(typeof(PlayerCallbacks))]
 | |
| 
 | |
| namespace Unity.PerformanceTesting
 | |
| {
 | |
|     [Preserve]
 | |
|     internal class PlayerCallbacks : ITestRunCallback
 | |
|     {
 | |
|         internal static bool Saved { get; set; }
 | |
| 
 | |
|         public void RunStarted(ITest testsToRun)
 | |
|         {
 | |
|             // This method is empty because it's part of the NUnit framework's ITestListener interface,
 | |
|             // which Unity uses for running tests in the Editor. It receives a parameter "testsToRun" but
 | |
|             // doesn't require implementation as Unity can execute tests without it. Developers can add 
 | |
|             // custom initialization logic if needed.
 | |
|         }
 | |
| 
 | |
|         public void RunFinished(ITestResult testResults)
 | |
|         {
 | |
|             Saved = false;
 | |
|         }
 | |
| 
 | |
|         public void TestStarted(ITest test)
 | |
|         {
 | |
|             // This method is called by Unity when a new test has started. It receives a parameter "test"
 | |
|             // which contains information about the test being executed. Developers can add custom logic
 | |
|             // in this method, such as logging or setup code for the test.
 | |
|         }
 | |
| 
 | |
|         public void TestFinished(ITestResult result)
 | |
|         {
 | |
|             // This method is called by Unity when a test has finished executing. It receives a parameter 
 | |
|             // "result" which contains information about the test execution, such as whether the test 
 | |
|             // passed or failed, and any messages or exceptions thrown during the test. Developers can 
 | |
|             // add custom logic in this method, such as logging or teardown code for the test.
 | |
|         }
 | |
| 
 | |
|         internal static void LogMetadata()
 | |
|         {
 | |
|             if (Saved) return;
 | |
| 
 | |
|             var run = Metadata.GetFromResources();
 | |
|             var json = JsonUtility.ToJson(run);
 | |
|             TestContext.Out?.WriteLine("##performancetestruninfo2:" + json);
 | |
|             Saved = true;
 | |
|         }
 | |
|     }
 | |
| } |