示例#1
0
 protected Robot(LoggerConfigurator logConfig)
 {
     LogConfig = logConfig;
     Logger    = logConfig == null
         ? new TraceLogger(false, "trace", LogLevel.Error, true, false, false, "F")
         : logConfig.GetLogger();
     AutoLoadScripts = true;
 }
 public NuGetPackageAssemblyResolver(LoggerConfigurator logConfig)
 {
     _log = logConfig.GetLogger();
     AppDomain.CurrentDomain.AssemblyResolve += OnAssemblyResolve;
     RefreshAssemblies(_log);
 }
示例#3
0
        public static LoggerConfigurator CreateLogConfig(Options options)
        {
            var logConfig = new LoggerConfigurator(options.Verbose ? LogLevel.Debug : LogLevel.Info);
            if (Environment.UserInteractive)
            {
                logConfig.ConfigureForConsole();
            }
            else
            {
                logConfig.AddTraceListener();
            }

            var logger = logConfig.GetLogger();

            if (!string.IsNullOrWhiteSpace(options.LogFile))
            {
                if (Directory.Exists(Path.GetDirectoryName(options.LogFile)))
                    logConfig.ConfigureForFile(options.LogFile);
                else
                    logger.Warn(string.Format("Failed to load log file.  Path for {0} does not exist.", options.LogFile));
            }
            return logConfig;
        }
示例#4
0
 public static Common.Logging.ILog GetConsoleLogger(LogLevel logLevel)
 {
     var configurator = new LoggerConfigurator(logLevel);
     configurator.ConfigureForConsole();
     return configurator.GetLogger();
 }
示例#5
0
        public async Task WhenRobotIsReset_ScriptCleanupIsInvoked()
        {
            var loggerConfigurator = new LoggerConfigurator(LogLevel.All);
            var builder = new RobotBuilder(loggerConfigurator)
                .UseAdapter<StubAdapter>()
                .UseBrain<StubBrain>()
                .DisablePluginDiscovery()
                .DisableScriptDiscovery();

            var scriptRunner = new ScriptRunner(loggerConfigurator.GetLogger());
            
            var robot = builder
                        .Build(c => c.Register<IScriptRunner>(scriptRunner));

            scriptRunner.Initialize(robot);

            robot.LoadScript<StubEchoScript>();

            bool isCleanedUp = false;
            using(scriptRunner.StartScriptProcessingSession(new ScriptSource("TestScript", string.Empty)))
            {
                robot.RegisterCleanup(() => isCleanedUp = true);
            }

            await robot.Reset();

            Assert.True(isCleanedUp);
        }