/// <summary> /// Using in case of steps in teardown failed, it will take screenshot but store in property: ErrorTearDownScreenshot /// </summary> /// <param name="ex">Exception</param> public static void FailInTearDown(Exception ex) { _runType = TestContext.CurrentContext.Test.Properties.Get("RunType")?.ToString(); switch (_runType.ToUpper()) { case "DEV": GetDevTestCaseInfo(); ObjectId screenShotId = MongoDBHelpers.TakeScreenShotAndUpload(_devRunRecord.TestCaseCodeName); Console.WriteLine($"{DateTime.UtcNow}: {ex.GetType()} - {ex.Message}"); _devRunRecord.Status = TestStatus.Failed.ToString(); _devRunRecord.EndAt = DateTime.UtcNow; _devRunRecord.ExecuteTime = (_devRunRecord.EndAt - _devRunRecord.StartAt).Seconds; _devRunRecord.Log += $"\n{DateTime.UtcNow}: [Failed in teardown] {ex.GetType()} - {ex.Message}"; _devRunRecord.ErrorMessage += $"\n [Failed in teardown]: {_keywordName} - {ex.Message}"; _devRunRecord.ErrorScreenshot = screenShotId.ToString(); MongoDBHelpers.UpdateFailForDevRecord(_devRunRecord); break; case "REGRESSION": GetRegTestCaseInfo(); ObjectId screenShotRegId = MongoDBHelpers.TakeScreenShotAndUpload(_regRunRecord.RegressionTestId); Console.WriteLine($"{DateTime.UtcNow}: {ex.GetType()} - {ex.Message}"); _regRunRecord.Status = TestStatus.Failed.ToString(); _regRunRecord.EndAt = DateTime.UtcNow; _regRunRecord.ExecuteTime = (_regRunRecord.EndAt - _regRunRecord.StartAt).Seconds; _regRunRecord.Log += $"\n{DateTime.UtcNow}: [Failed in teardown] {ex.GetType()} - {ex.Message}"; _regRunRecord.ErrorMessage += $"\n [Failed in teardown]: {ex.GetType()} - {ex.Message}"; _regRunRecord.ErrorScreenshot = screenShotRegId.ToString(); MongoDBHelpers.UpdateFailForRegRecord(_regRunRecord); break; } }
public static void Fail() { _runType = TestContext.CurrentContext.Test.Properties.Get("RunType")?.ToString(); switch (_runType.ToUpper()) { case "DEV": GetDevTestCaseInfo(); ObjectId debugScreenShotId = MongoDBHelpers.TakeScreenShotAndUpload($"dev{_devRunRecord.TestCaseCodeName}"); _devRunRecord.ErrorMessage = $"[{_keywordName}]: {TestContext.CurrentContext.Result.Message} {TestContext.CurrentContext.Result.StackTrace}"; Console.WriteLine($"{DateTime.UtcNow} - [{_keywordName}]: {TestContext.CurrentContext.Result.Message} {TestContext.CurrentContext.Result.StackTrace}"); _devRunRecord.EndAt = DateTime.UtcNow; _devRunRecord.ExecuteTime = (_devRunRecord.EndAt - _devRunRecord.StartAt).Seconds; _devRunRecord.ErrorScreenshot = debugScreenShotId.ToString(); _devRunRecord.Buffers = MongoDBHelpers.getDevBuffers(_devRunRecord); _devRunRecord.Log = $"\n{DateTime.UtcNow}: {_devRunRecord.ErrorMessage}"; _devRunRecord.Log += $"\n{DateTime.UtcNow}: Error Screenshot - {debugScreenShotId}"; MongoDBHelpers.UpdateFailForDevRecord(_devRunRecord); break; case "REGRESSION": GetRegTestCaseInfo(); ObjectId regressionScreenShotId = MongoDBHelpers.TakeScreenShotAndUpload($"regression_{_devRunRecord.TestCaseCodeName}"); _regRunRecord.ErrorMessage = $"[{_keywordName}]: {TestContext.CurrentContext.Result.Message} {TestContext.CurrentContext.Result.StackTrace}"; Console.WriteLine($"{DateTime.UtcNow} - [{_keywordName}]: {TestContext.CurrentContext.Result.Message} {TestContext.CurrentContext.Result.StackTrace}"); _regRunRecord.EndAt = DateTime.UtcNow; _regRunRecord.ExecuteTime = (_regRunRecord.EndAt - _regRunRecord.StartAt).Seconds; _regRunRecord.ErrorScreenshot = regressionScreenShotId.ToString(); _regRunRecord.Log = $"\n{DateTime.UtcNow}: {_regRunRecord.ErrorMessage}"; _regRunRecord.Log += $"\n{DateTime.UtcNow}: Error Screenshot - {regressionScreenShotId}"; MongoDBHelpers.UpdateFailForRegRecord(_regRunRecord); break; } }