79 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			79 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
|  | using System; | ||
|  | using NUnit; | ||
|  | using NUnit.Framework; | ||
|  | using NUnit.Framework.Interfaces; | ||
|  | using NUnit.Framework.Internal; | ||
|  | 
 | ||
|  | namespace UnityEngine.TestRunner.NUnitExtensions | ||
|  | { | ||
|  |     internal static class TestResultExtensions | ||
|  |     { | ||
|  |         public static void RecordPrefixedException(this TestResult testResult, string prefix, Exception ex, ResultState resultState = null) | ||
|  | 
 | ||
|  |         { | ||
|  |             if (ex is NUnitException) | ||
|  |             { | ||
|  |                 ex = ex.InnerException; | ||
|  |             } | ||
|  | 
 | ||
|  |             if (resultState == null) | ||
|  |             { | ||
|  |                 resultState = testResult.ResultState == ResultState.Cancelled | ||
|  |                     ? ResultState.Cancelled | ||
|  |                     : ResultState.Error; | ||
|  |             } | ||
|  | 
 | ||
|  |             var exceptionMessage = ExceptionHelper.BuildMessage(ex); | ||
|  |             string stackTrace = "--" + prefix + Env.NewLine + ExceptionHelper.BuildStackTrace(ex); | ||
|  |             if (testResult.StackTrace != null) | ||
|  |             { | ||
|  |                 stackTrace = testResult.StackTrace + Env.NewLine + stackTrace; | ||
|  |             } | ||
|  | 
 | ||
|  |             if (testResult.Test.IsSuite) | ||
|  |             { | ||
|  |                 resultState = resultState.WithSite(FailureSite.TearDown); | ||
|  |             } | ||
|  | 
 | ||
|  |             if (ex is ResultStateException) | ||
|  |             { | ||
|  |                 exceptionMessage = ex.Message; | ||
|  |                 resultState = ((ResultStateException)ex).ResultState; | ||
|  |                 stackTrace = StackFilter.Filter(ex.StackTrace); | ||
|  |             } | ||
|  | 
 | ||
|  |             string message = (string.IsNullOrEmpty(prefix) ? "" : (prefix + " : ")) + exceptionMessage; | ||
|  |             if (testResult.Message != null) | ||
|  |             { | ||
|  |                 message = testResult.Message + Env.NewLine + message; | ||
|  |             } | ||
|  | 
 | ||
|  |             testResult.SetResult(resultState, message, stackTrace); | ||
|  |         } | ||
|  | 
 | ||
|  |         public static void RecordPrefixedError(this TestResult testResult, string prefix, string error, ResultState resultState = null) | ||
|  | 
 | ||
|  |         { | ||
|  |             if (resultState == null) | ||
|  |             { | ||
|  |                 resultState = testResult.ResultState == ResultState.Cancelled | ||
|  |                     ? ResultState.Cancelled | ||
|  |                     : ResultState.Error; | ||
|  |             } | ||
|  | 
 | ||
|  |             if (testResult.Test.IsSuite) | ||
|  |             { | ||
|  |                 resultState = resultState.WithSite(FailureSite.TearDown); | ||
|  |             } | ||
|  | 
 | ||
|  |             string message = (string.IsNullOrEmpty(prefix) ? "" : (prefix + " : ")) + error; | ||
|  |             if (testResult.Message != null) | ||
|  |             { | ||
|  |                 message = testResult.Message + Env.NewLine + message; | ||
|  |             } | ||
|  | 
 | ||
|  |             testResult.SetResult(resultState, message); | ||
|  |         } | ||
|  |     } | ||
|  | } |