private void ScanForCustomScreengrabber(IEnumerable <Type> types) { var implementingTypes = types.Where(type => type.GetInterfaces().Any(t => t.FullName == "Gauge.CSharp.Lib.ICustomScreenshotGrabber")); ScreenshotWriter = implementingTypes.FirstOrDefault(); if (ScreenshotWriter is null) { return; } var csg = (ICustomScreenshotGrabber)_activatorWrapper.CreateInstance(ScreenshotWriter); GaugeScreenshots.RegisterCustomScreenshotGrabber(csg); }
private string TryScreenCapture() { try { InvokeScreenshotCapture(); } catch (System.NullReferenceException) { Logger.Warning("Unable to capture screenshot, CustomScreenshotWriter is probably not set, retrying with DefaultScreenshotWriter"); GaugeScreenshots.RegisterCustomScreenshotWriter(new DefaultScreenshotWriter()); try { InvokeScreenshotCapture(); } catch (System.Exception ex) { Logger.Warning($"Unable to capture screenshot with DefaultScreenshotWriter, {ex.Message}\n{ex.StackTrace}"); } } var messageCollectorType = _assemblyLoader.GetLibType(LibType.ScreenshotFilesCollector); return((_reflectionWrapper.InvokeMethod(messageCollectorType, null, "GetAllPendingScreenshotFiles", BindingFlags.Static | BindingFlags.Public) as IEnumerable <string>).FirstOrDefault()); }
public void TakeScreenshot() => GaugeScreenshots.Capture();
public void TakeProjectReferenceScreenshot() { GaugeScreenshots.RegisterCustomScreenshotWriter(new ReferenceProject.ScreenshotWriter()); GaugeScreenshots.Capture(); GaugeScreenshots.RegisterCustomScreenshotWriter(new StringScreenshotWriter()); }
public void ContinueOnFailure() { GaugeScreenshots.RegisterCustomScreenshotWriter(new StringScreenshotWriter()); throw new CustomSerializableException("I am a custom serializable exception"); }