暫無描述
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

TestResultExtensions.cs 2.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. using System;
  2. using NUnit;
  3. using NUnit.Framework;
  4. using NUnit.Framework.Interfaces;
  5. using NUnit.Framework.Internal;
  6. namespace UnityEngine.TestRunner.NUnitExtensions
  7. {
  8. internal static class TestResultExtensions
  9. {
  10. public static void RecordPrefixedException(this TestResult testResult, string prefix, Exception ex, ResultState resultState = null)
  11. {
  12. if (ex is NUnitException)
  13. {
  14. ex = ex.InnerException;
  15. }
  16. if (resultState == null)
  17. {
  18. resultState = testResult.ResultState == ResultState.Cancelled
  19. ? ResultState.Cancelled
  20. : ResultState.Error;
  21. }
  22. var exceptionMessage = ExceptionHelper.BuildMessage(ex);
  23. string stackTrace = "--" + prefix + Env.NewLine + ExceptionHelper.BuildStackTrace(ex);
  24. if (testResult.StackTrace != null)
  25. {
  26. stackTrace = testResult.StackTrace + Env.NewLine + stackTrace;
  27. }
  28. if (testResult.Test.IsSuite)
  29. {
  30. resultState = resultState.WithSite(FailureSite.TearDown);
  31. }
  32. if (ex is ResultStateException)
  33. {
  34. exceptionMessage = ex.Message;
  35. resultState = ((ResultStateException)ex).ResultState;
  36. stackTrace = StackFilter.Filter(ex.StackTrace);
  37. }
  38. string message = (string.IsNullOrEmpty(prefix) ? "" : (prefix + " : ")) + exceptionMessage;
  39. if (testResult.Message != null)
  40. {
  41. message = testResult.Message + Env.NewLine + message;
  42. }
  43. testResult.SetResult(resultState, message, stackTrace);
  44. }
  45. public static void RecordPrefixedError(this TestResult testResult, string prefix, string error, ResultState resultState = null)
  46. {
  47. if (resultState == null)
  48. {
  49. resultState = testResult.ResultState == ResultState.Cancelled
  50. ? ResultState.Cancelled
  51. : ResultState.Error;
  52. }
  53. if (testResult.Test.IsSuite)
  54. {
  55. resultState = resultState.WithSite(FailureSite.TearDown);
  56. }
  57. string message = (string.IsNullOrEmpty(prefix) ? "" : (prefix + " : ")) + error;
  58. if (testResult.Message != null)
  59. {
  60. message = testResult.Message + Env.NewLine + message;
  61. }
  62. testResult.SetResult(resultState, message);
  63. }
  64. }
  65. }