49 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			49 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 
								 | 
							
								#if TEST_FRAMEWORK
							 | 
						||
| 
								 | 
							
								using NUnit.Framework.Interfaces;
							 | 
						||
| 
								 | 
							
								using Packages.Rider.Editor.UnitTesting;
							 | 
						||
| 
								 | 
							
								using UnityEngine.TestRunner;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[assembly: TestRunCallback(typeof(SyncTestRunCallback))]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace Packages.Rider.Editor.UnitTesting
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  internal class SyncTestRunCallback : ITestRunCallback
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    public void RunStarted(ITest testsToRun)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public void RunFinished(ITestResult testResults)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								      SyncTestRunEventsHandler.instance.OnRunFinished();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public void TestStarted(ITest test)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								      if (!test.IsSuite)
							 | 
						||
| 
								 | 
							
								        SyncTestRunEventsHandler.instance.OnTestStarted(GenerateId(test));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public void TestFinished(ITestResult result)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								      if (!result.Test.IsSuite)
							 | 
						||
| 
								 | 
							
								        SyncTestRunEventsHandler.instance.OnTestFinished();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    // https://jetbrains.team/p/net/code/dotnet-libs/files/f04cde7d1dd70ee13bf5532e30f929b9b5ed08a4/ReSharperTestRunner/src/Adapters/TestRunner.Adapters.NUnit3/RemoteTaskDepot.cs?tab=source&line=129
							 | 
						||
| 
								 | 
							
								    private static string GenerateId(ITest node)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								      // ES: Parameterized tests defined in a parametrized test fixture, though 
							 | 
						||
| 
								 | 
							
								      // constructed for a particular test fixture with the given parameter, have identical fullname that does
							 | 
						||
| 
								 | 
							
								      // not include parameters of parent testfixture (name of the without parameters is used instead).
							 | 
						||
| 
								 | 
							
								      // This leads to 'Test with {id} id is already running' message.
							 | 
						||
| 
								 | 
							
								      var typeName = node.GetType().Name;
							 | 
						||
| 
								 | 
							
								      if (typeName == "ParameterizedMethod" ||
							 | 
						||
| 
								 | 
							
								          typeName == "GenericMethod") 
							 | 
						||
| 
								 | 
							
								        return $"{node.Parent.FullName}.{node.Name}";
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      return node.FullName;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#endif 
							 |