public async Task <IList <TItem> > ListAsync <TItem>(IEnumerable <QueryData> queries, CancellationToken cancellationToken = default) { if (queries == null) { throw new ArgumentNullException(nameof(queries)); } if (this.Options.Schemas == null) { throw new InvalidOperationException("No schema builder found."); } ResultAdapter <TItem> adapter = new ResultAdapter <TItem>(this.Options.Schemas); await using AsyncSession connection = new AsyncSession(this.Options); foreach (QueryData queryData in queries.NotNull()) { Query builder = new Query(queryData); if (string.IsNullOrWhiteSpace(queryData.QueryText)) { continue; } await foreach (DbDataReader dataReader in connection.ExecuteAsync(builder, cancellationToken).ConfigureAwait(false)) { await adapter.AddResultAsync(dataReader, cancellationToken).ConfigureAwait(false); } } return(adapter.ToList()); }
public IList <TItem> List <TItem>(IEnumerable <QueryData> queries) { if (queries == null) { throw new ArgumentNullException(nameof(queries)); } if (this.Options.Schemas == null) { throw new InvalidOperationException("No schema store found."); } ResultAdapter <TItem> adapter = new ResultAdapter <TItem>(this.Options.Schemas); using SyncSession connection = new SyncSession(this.Options); foreach (QueryData queryData in queries.NotNull()) { Query builder = new Query(queryData); if (string.IsNullOrWhiteSpace(queryData.QueryText)) { continue; } foreach (IDataReader dataReader in connection.Execute(builder)) { adapter.AddResult(dataReader); } } return(adapter.ToList()); }
public HttpResponseMessage Get(string metric, int size, int frequence) { string device = Request.GetQueryNameValuePairs().Where(x => x.Key == "device").FirstOrDefault().Value; ResultAdapter resultAdapter = new ResultAdapter(); resultAdapter.device = device; resultAdapter.generateTable(metric, size, frequence); var json = JsonConvert.SerializeObject(resultAdapter); var response = this.Request.CreateResponse(HttpStatusCode.OK); response.Content = new StringContent(json, Encoding.UTF8, "application/json"); return(response); }
private string GetCombinedFailureMessage(ResultAdapter result, string tearDownFailure, string tearDownStackTrace) { var message = new StringBuilder() .Append("The test failed and then failed to cleanup. Test failure is: ") .AppendLine(result.Message) .Append("Tear-down failure is: ") .AppendLine(tearDownFailure) .AppendLine("Test failure stack trace is: ") .AppendLine(result.StackTrace); if (!string.IsNullOrEmpty(tearDownStackTrace)) { message.AppendLine("Tear-down failure stack trace is:") .Append(tearDownStackTrace); } return(message.ToString()); }
public async Task <IList <TItem> > ListAsync <TItem>(IEnumerable <QueryData> queries, CancellationToken cancellationToken = default) { if (queries == null) { throw new ArgumentNullException(nameof(queries)); } if (this.Options.Schemas == null) { throw new InvalidOperationException("No schema builder found."); } ResultAdapter <TItem> adapter = new ResultAdapter <TItem>(this.Options.Schemas); #if NETSTANDARD2_1 await #endif using AdoConnection connection = new AdoConnection(this.Options); foreach (QueryData queryData in queries.NotNull()) { AdoHelper helper = new AdoHelper(queryData); if (string.IsNullOrWhiteSpace(queryData.QueryText)) { continue; } #if NETSTANDARD2_0 await connection.ExecuteAsync(helper, async (r) => { await adapter.AddResultAsync(r, cancellationToken).ConfigureAwait(false); }, cancellationToken).ConfigureAwait(false); #elif NETSTANDARD2_1 await foreach (DbDataReader dataReader in connection.ExecuteAsync(helper, cancellationToken)) { await adapter.AddResultAsync(dataReader, cancellationToken); } #endif } return(adapter.ToList()); }
/// <summary> /// TestCase results /// </summary> /// <param name="testStatus"></param> public void TestCaseResults(TestContext testContext) { TestStatus testStatus = testContext.Result.Outcome.Status; ResultAdapter resultAdapter = testContext.Result; object[] endTestCaseParameterArray; List <string> testResults = new List <string>(); TestResult testResult = TestResult.Inconclusive; Type myClass = Assembly.GetCallingAssembly().GetType(className); MethodInfo EndOfTestCaseExecution = myClass.GetMethod("EndOfTestCaseExecution"); TestBaseClassService myObj = (TestBaseClassService)Activator.CreateInstance(myClass); try { if (testStatus == TestStatus.Passed) { if (Initialize.DisplayExecutionTimeInLogger) { watch.Stop(); timeElapsed = watch.ElapsedMilliseconds.ToString(); } //Logging testcase details after pass ContextLogger.LogAfterTestCasePass(moduleName, className, testCaseName, timeElapsed, testStatus.ToString()); endTestCaseParameterArray = new object[] { moduleName, className, testCaseName, true }; EndOfTestCaseExecution.Invoke(myObj, endTestCaseParameterArray); testResult = TestResult.Passed; } else if (testStatus == TestStatus.Failed) { //Logging if test case fails if (Initialize.DisplayExecutionTimeInLogger) { watch.Stop(); timeElapsed = watch.ElapsedMilliseconds.ToString(); } //Logging testCase details after fails ContextLogger.LogAfterTestCaseFails(moduleName, className, testCaseName, testDataService.TestData, timeElapsed, testStatus.ToString()); endTestCaseParameterArray = new object[] { moduleName, className, testCaseName, false }; EndOfTestCaseExecution.Invoke(myObj, endTestCaseParameterArray); testResult = TestResult.Failed; testResults.Add(resultAdapter.Message); testResults.Add(resultAdapter.StackTrace); } else if (testStatus == TestStatus.Skipped) { //Logging if test case fails if (Initialize.DisplayExecutionTimeInLogger) { watch.Stop(); timeElapsed = watch.ElapsedMilliseconds.ToString(); } //Logging testCase details after fails ContextLogger.LogAfterTestCaseSkipped(moduleName, className, testCaseName, timeElapsed, testStatus.ToString()); endTestCaseParameterArray = new object[] { moduleName, className, testCaseName, false }; EndOfTestCaseExecution.Invoke(myObj, endTestCaseParameterArray); testResult = TestResult.Skipped; testResults.Add(resultAdapter.Message); } else if (testStatus == TestStatus.Inconclusive) { if (Initialize.DisplayExecutionTimeInLogger) { watch.Stop(); timeElapsed = watch.ElapsedMilliseconds.ToString(); } //Logging testCase details after fails ContextLogger.LogAfterTestCaseInConclusive(moduleName, className, testCaseName, timeElapsed, testStatus.ToString()); endTestCaseParameterArray = new object[] { moduleName, className, testCaseName, false }; EndOfTestCaseExecution.Invoke(myObj, endTestCaseParameterArray); testResult = TestResult.Inconclusive; } } catch (IgnoreException ex) { //Logging testCase details after fails ContextLogger.LogAfterTestCaseSkipped(moduleName, className, testCaseName, timeElapsed, "Skipped" + ex.Message); endTestCaseParameterArray = new object[] { moduleName, className, testCaseName, false }; EndOfTestCaseExecution.Invoke(myObj, endTestCaseParameterArray); testResult = TestResult.Skipped; } catch (Exception ex) { ContextLogger.LogIfException(moduleName, className, testCaseName, ex.Message); endTestCaseParameterArray = new object[] { moduleName, className, testCaseName, false }; EndOfTestCaseExecution.Invoke(myObj, endTestCaseParameterArray); testResult = TestResult.Failed; if (testResults.Count == 0) { testResults.Add("Test is executed with:" + testResult.ToString() + "status"); } testResultService.InsertTestResults(testCaseName, testResult, testResults.ToArray()); } finally { if (testResults.Count == 0) { testResults.Add("Test is executed with:" + testResult.ToString() + "status"); } testResultService.InsertTestResults(testCaseName, testResult, testResults.ToArray()); } }
public Result(ResultAdapter result, TestStatus status = TestStatus.None) { Status = status == TestStatus.None ? result.Outcome.Status.ToString() : status.ToString(); StackTrace = result.StackTrace; ErrorMessage = result.Message; }
public void AfterTest() { string zaleniumTestStatusCookieValue = string.Empty; try { ResultAdapter result = CurrentContext.Result; List <object> testResults = result.CheckForTestStatusInjection(); testStatus = (TestStatus)testResults[0]; switch (testStatus) { case TestStatus.Failed: string injMsg = (string)testResults[1]; string stacktrace = result.StackTrace.HasValue() ? (injMsg = injMsg.HasValue() ? "" : $"{injMsg}<br> ") : $"<pre>{result.StackTrace}</pre>"; string screenshotName = BaseUtil.CaptureScreenshot(); if (reporter == ReporterType.Klov) { /*Use when Klov Reporter bug is fixed * //Upload screenshot to MongoDB server * var screenshotPath = $"\\\\10.1.1.207\\errorscreenshots\\{screenshotName}"; * testInstance.Fail($"Test Failed: <br> {stacktrace}").AddScreenCaptureFromPath(screenshotPath, screenshotName); */ //Workaround due to bug in Klov Reporter var screenshotRemotePath = $"http://{GridVmIP}/errorscreenshots/{screenshotName}"; var detailsWithScreenshot = $"Test Failed:<br> {stacktrace}<br> <img data-featherlight=\"{screenshotRemotePath}\" class=\"step-img\" src=\"{screenshotRemotePath}\" data-src=\"{screenshotRemotePath}\" width=\"200\">"; testInstance.Fail(MarkupHelper.CreateLabel(detailsWithScreenshot, ExtentColor.Red)); } else { //Attach screenshot to log var screenshotPath = $"errorscreenshots/{screenshotName}"; testInstance.Fail($"Test Failed: <br> {stacktrace}", MediaEntityBuilder.CreateScreenCaptureFromPath(screenshotPath, screenshotName).Build()); } zaleniumTestStatusCookieValue = "false"; break; case TestStatus.Passed: testInstance.Pass(MarkupHelper.CreateLabel("Test Passed", ExtentColor.Green)); zaleniumTestStatusCookieValue = "true"; break; case TestStatus.Skipped: testInstance.Skip(MarkupHelper.CreateLabel("Test Skipped", ExtentColor.Yellow)); break; default: testInstance.Debug(MarkupHelper.CreateLabel("Inconclusive Test Result", ExtentColor.Orange)); break; } TestStopwatch.Stop(); if (hiptest) { var resultDesc = new KeyValuePair <TestStatus, string>(testStatus, testDescription); var tcResultPair = new KeyValuePair <int, KeyValuePair <TestStatus, string> >(int.Parse(testCaseNumber), resultDesc); hipTestResults.Add(tcResultPair); } } catch (Exception e) { log.Error($"Exception occured for Failed TC in AfterTest method {e.Message}"); } finally { try { if (driver != null) { Report.Info($"TOTAL TEST TIME: {TestStopwatch.Elapsed.ToString()}"); reportInstance.Flush(); if (cookie != null) { AddCookieToCurrentPage("zaleniumTestPassed", zaleniumTestStatusCookieValue); } if (!driver.Title.Equals("Home Page")) { driver.FindElement(By.XPath("//a[text()=' Log out']")).Click(); } DismissDriverInstance(driver); } } catch (UnableToSetCookieException e) { log.Debug(e.Message); } catch (NoSuchElementException e) { log.Debug(e.Message); } catch (Exception e) { log.Error($"{e.Message}\n{e.StackTrace}"); } } }