Example #1
0
                internal async void Run(object sender, EventArgs e)
                {
                    if (IdeApp.ProjectOperations.IsBuilding(IdeApp.ProjectOperations.CurrentSelectedSolution) ||
                        IdeApp.ProjectOperations.IsRunning(IdeApp.ProjectOperations.CurrentSelectedSolution))
                    {
                        return;
                    }

                    var foundTest = UnitTestService.SearchTestByDocumentId(testCase);

                    if (foundTest != null)
                    {
                        RunTest(foundTest);
                        return;
                    }

                    bool buildBeforeExecuting = IdeApp.Preferences.BuildBeforeRunningTests;

                    if (buildBeforeExecuting)
                    {
                        await IdeApp.ProjectOperations.Build(project).Task;

                        await UnitTestService.RefreshTests(CancellationToken.None);
                    }

                    foundTest = UnitTestService.SearchTestByDocumentId(testCase);
                    if (foundTest != null)
                    {
                        RunTest(foundTest);
                    }
                    else
                    {
                        UnitTestService.ReportExecutionError(GettextCatalog.GetString("Unit test '{0}' could not be loaded.", testCase));
                    }
                }
Example #2
0
                internal void Select(object sender, EventArgs e)
                {
                    var test = UnitTestService.SearchTestByDocumentId(testCase);

                    if (test == null)
                    {
                        return;
                    }
                    UnitTestService.CurrentSelectedTest = test;
                }
Example #3
0
            public override Xwt.Drawing.Image GetStatusIcon(string unitTestIdentifier, string caseId = null)
            {
                var test = UnitTestService.SearchTestByDocumentId(unitTestIdentifier + caseId);

                if (test != null)
                {
                    return(test.StatusIcon);
                }
                return(TestStatusIcon.None);
            }
Example #4
0
            public override string GetMessage(string unitTestIdentifier, string caseId = null)
            {
                var test = UnitTestService.SearchTestByDocumentId(unitTestIdentifier + caseId);

                if (test != null)
                {
                    var result = test.GetLastResult();
                    if (result != null)
                    {
                        return(result.Message);
                    }
                }
                return(null);
            }
Example #5
0
            public override bool IsFailure(string unitTestIdentifier, string caseId = null)
            {
                var test = UnitTestService.SearchTestByDocumentId(unitTestIdentifier + caseId);

                if (test != null)
                {
                    var result = test.GetLastResult();
                    if (result != null)
                    {
                        return(result.IsFailure);
                    }
                }
                return(false);
            }
Example #6
0
                bool TimeoutHandler()
                {
                    var test = UnitTestService.SearchTestByDocumentId(testCase);

                    if (test != null)
                    {
                        RunTest(test);
                        timeoutHandler = 0;
                    }
                    else
                    {
                        return(true);
                    }
                    return(false);
                }
Example #7
0
            public override void PopupContextMenu(UnitTestLocation unitTest, int x, int y)
            {
                var debugModeSet = Runtime.ProcessService.GetDebugExecutionMode();
                var project      = ext?.DocumentContext?.Project;

                if (project == null)
                {
                    return;
                }
                var menu = new ContextMenu();

                if (unitTest.IsFixture)
                {
                    var menuItem = new ContextMenuItem(GettextCatalog.GetString("_Run All"));
                    menuItem.Clicked += new TestRunner(unitTest.UnitTestIdentifier, project, false).Run;
                    menu.Add(menuItem);
                    if (debugModeSet != null)
                    {
                        menuItem          = new ContextMenuItem(GettextCatalog.GetString("_Debug All"));
                        menuItem.Clicked += new TestRunner(unitTest.UnitTestIdentifier, project, true).Run;
                        menu.Add(menuItem);
                    }
                    menuItem          = new ContextMenuItem(GettextCatalog.GetString("_Select in Test Pad"));
                    menuItem.Clicked += new TestRunner(unitTest.UnitTestIdentifier, project, true).Select;
                    menu.Add(menuItem);
                }
                else
                {
                    if (unitTest.TestCases.Count == 0)
                    {
                        var menuItem = new ContextMenuItem(GettextCatalog.GetString("_Run"));
                        menuItem.Clicked += new TestRunner(unitTest.UnitTestIdentifier, project, false).Run;
                        menu.Add(menuItem);
                        if (debugModeSet != null)
                        {
                            menuItem          = new ContextMenuItem(GettextCatalog.GetString("_Debug"));
                            menuItem.Clicked += new TestRunner(unitTest.UnitTestIdentifier, project, true).Run;
                            menu.Add(menuItem);
                        }
                        menuItem          = new ContextMenuItem(GettextCatalog.GetString("_Select in Test Pad"));
                        menuItem.Clicked += new TestRunner(unitTest.UnitTestIdentifier, project, true).Select;
                        menu.Add(menuItem);
                    }
                    else
                    {
                        var menuItem = new ContextMenuItem(GettextCatalog.GetString("_Run All"));
                        menuItem.Clicked += new TestRunner(unitTest.UnitTestIdentifier, project, false).Run;
                        menu.Add(menuItem);
                        if (debugModeSet != null)
                        {
                            menuItem          = new ContextMenuItem(GettextCatalog.GetString("_Debug All"));
                            menuItem.Clicked += new TestRunner(unitTest.UnitTestIdentifier, project, true).Run;
                            menu.Add(menuItem);
                        }
                        menu.Add(new SeparatorContextMenuItem());
                        foreach (var id in unitTest.TestCases)
                        {
                            var submenu = new ContextMenu();
                            menuItem          = new ContextMenuItem(GettextCatalog.GetString("_Run"));
                            menuItem.Clicked += new TestRunner(unitTest.UnitTestIdentifier + id, project, false).Run;
                            submenu.Add(menuItem);
                            if (debugModeSet != null)
                            {
                                menuItem          = new ContextMenuItem(GettextCatalog.GetString("_Debug"));
                                menuItem.Clicked += new TestRunner(unitTest.UnitTestIdentifier + id, project, true).Run;
                                submenu.Add(menuItem);
                            }

                            var    label   = "Test" + id;
                            string tooltip = null;
                            var    test    = UnitTestService.SearchTestByDocumentId(unitTest.UnitTestIdentifier + id);
                            if (test != null)
                            {
                                var result = test.GetLastResult();
                                if (result != null && result.IsFailure)
                                {
                                    tooltip = result.Message;
                                    label  += "!";
                                }
                            }

                            menuItem          = new ContextMenuItem(GettextCatalog.GetString("_Select in Test Pad"));
                            menuItem.Clicked += new TestRunner(unitTest.UnitTestIdentifier + id, project, true).Select;
                            submenu.Add(menuItem);

                            const int maxLabelLength = 80;
                            var       trimmedLabel   = label.Trim();
                            if (trimmedLabel.Length > maxLabelLength)
                            {
                                const char gap           = '\u2026';
                                int        remainsLength = (maxLabelLength - 1) / 2;
                                string     start         = trimmedLabel.Substring(0, remainsLength);
                                string     end           = trimmedLabel.Substring(trimmedLabel.Length - remainsLength, remainsLength);
                                label = $"{start.TrimEnd()}{gap}{end.TrimStart ()}";
                            }

                            var subMenuItem = new ContextMenuItem(label);
                            // if (!string.IsNullOrEmpty (tooltip))
                            //	subMenuItem.TooltipText = tooltip;
                            subMenuItem.SubMenu = submenu;
                            menu.Add(subMenuItem);
                        }
                    }
                }
                // FIXME: enforce public API by casting Control to Gtk.Widget, because of IVT
                menu.Show((Gtk.Widget)ext.Editor, x, y);
            }
Example #8
0
 public override bool HasResult(string unitTestIdentifier, string caseId = null)
 {
     return(UnitTestService.SearchTestByDocumentId(unitTestIdentifier + caseId) != null);
 }