예제 #1
0
        public static void StartSession(string file = null, string profilePath = null, string args = null)
        {
            Session = new AutoTestClientSession();

            Session.StartApplication(file: file, args: args, environment: new Dictionary <string, string> {
                { "MONODEVELOP_PROFILE", profilePath ?? Util.CreateTmpDir("profile") }
            });

            Session.SetGlobalValue("MonoDevelop.Core.Instrumentation.InstrumentationService.Enabled", true);
            Session.GlobalInvoke("MonoDevelop.Ide.IdeApp.Workbench.GrabDesktopFocus");
        }
예제 #2
0
        public static void StartSession(string monoDevelopBinPath = null, string profilePath = null)
        {
            Session = new AutoTestClientSession();

            //TODO: support for testing the installed app

            Session.StartApplication(file: monoDevelopBinPath, environment: new Dictionary <string, string> {
                { "MONODEVELOP_TEST_PROFILE", profilePath ?? Util.CreateTmpDir("profile") }
            });

            Session.SetGlobalValue("MonoDevelop.Core.Instrumentation.InstrumentationService.Enabled", true);
            Session.GlobalInvoke("MonoDevelop.Ide.IdeApp.Workbench.GrabDesktopFocus");
        }
예제 #3
0
        public static void StartSession()
        {
            Console.WriteLine("Starting application");

            Session = new AutoTestClientSession();

            //TODO: support for testing the installed app

            Session.StartApplication(environment: new Dictionary <string, string> {
                { "MONODEVELOP_TEST_PROFILE", Util.CreateTmpDir("profile") }
            });

            Session.GlobalInvoke("MonoDevelop.Ide.IdeApp.Workbench.GrabDesktopFocus");
        }
예제 #4
0
        public static void StartSession(string file = null, string profilePath = null, string logFile = null, string args = null, bool useNewEditor = true)
        {
            Session = new AutoTestClientSession();

            profilePath = profilePath ?? Util.CreateTmpDir("profile");

            var env = new Dictionary <string, string> {
                { "MONODEVELOP_PROFILE", profilePath },
                { "VISUALSTUDIO_PROFILE", profilePath },
                { "MONODEVELOP_LOG_FILE", logFile },
                { "MONODEVELOP_FILE_LOG_LEVEL", "UpToInfo" },
            };

            if (!useNewEditor)
            {
                Console.WriteLine("Using legacy editor");
                env.Add("MD_FEATURES_ENABLED", "AlwaysUseLegacyEditor");
            }

            Session.StartApplication(file: file, args: args, environment: env);

            Session.SetGlobalValue("MonoDevelop.Core.Instrumentation.InstrumentationService.Enabled", true);
            Session.GlobalInvoke("MonoDevelop.Ide.IdeApp.Workbench.GrabDesktopFocus");
        }
예제 #5
0
        public static int Main(string[] args)
        {
            int  pa     = 0;
            bool attach = false;

            if (args [pa] == "-a")
            {
                attach = true;
                pa++;
            }
            if (pa >= args.Length)
            {
                Console.WriteLine("Test name not provided");
                return(1);
            }

            string testName = args[pa];

            Type testType = typeof(MainClass).Assembly.GetTypes().FirstOrDefault(t => t.FullName == testName);

            if (testType == null)
            {
                testType = typeof(MainClass).Assembly.GetTypes().FirstOrDefault(t => t.Name == testName);
            }

            if (testType == null)
            {
                Console.WriteLine("Test not found: " + args[0]);
                return(1);
            }

            StressTest test = (StressTest)Activator.CreateInstance(testType);
            TestPlan   plan = new TestPlan();

            plan.Repeat = 1;
            pa++;

            if (pa < args.Length)
            {
                int rep;
                if (int.TryParse(args[pa], out rep))
                {
                    plan.Repeat = rep;
                    pa++;
                }
            }

            while (pa < args.Length)
            {
                string arg   = args [pa];
                int    i     = arg.IndexOf('*');
                string tname = arg.Substring(0, i);
                string it    = arg.Substring(i + 1);
                int    nit;
                if (!int.TryParse(it, out nit))
                {
                    Console.WriteLine("Invalid number of iterations: " + it);
                    return(1);
                }
                if (tname.Length == 0)
                {
                    plan.Iterations = nit;
                }
                else
                {
                    if (!test.HasTest(tname))
                    {
                        Console.Write("Unknown test: " + tname);
                        return(1);
                    }
                    plan.SetIterationsForTest(tname, nit);
                }
                pa++;
            }

            AutoTestClientSession session = new AutoTestClientSession();

            Console.CancelKeyPress += delegate
            {
                Console.WriteLine("Test session cancelled");
                session.Stop();
            };
            try
            {
                if (attach)
                {
                    session.AttachApplication();
                }
                else
                {
                    string app = typeof(AutoTestClientSession).Assembly.Location;
                    app = Path.Combine(Path.GetDirectoryName(app), "MonoDevelop.exe");
                    session.StartApplication(app, "");
                    Console.WriteLine("Connected");
                    session.WaitForEvent("MonoDevelop.Ide.IdeInitialized");
                }
                Console.WriteLine("Initialized");
                TestService.Session = session;

                test.Run(plan);
            }
            finally
            {
                if (!attach)
                {
                    Console.WriteLine("Press Enter to stop the test process");
                    Console.ReadLine();
                }
                session.Stop();
            }
            return(0);
        }