Skip to content

Commit

Permalink
Merge pull request #1124 from TestCentric/issue-1114
Browse files Browse the repository at this point in the history
Add debugging commands to the GUI
  • Loading branch information
CharliePoole authored Sep 23, 2024
2 parents c481600 + f65f7d5 commit 188a45c
Show file tree
Hide file tree
Showing 10 changed files with 83 additions and 70 deletions.
4 changes: 3 additions & 1 deletion src/Common/testcentric.common.tests/CommandLineTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ public void InputFiles(params string[] files)
[TestCase("ProcessModel", null)]
[TestCase("DomainUsage", null)]
[TestCase("InternalTraceLevel", null)]
[TestCase("DebugTests", false)]
[TestCase("DebugAgent", false)]
[TestCase("Unattended", false)]
public void DefaultOptionValues(string propertyName, object val)
Expand Down Expand Up @@ -64,6 +65,7 @@ public void DefaultOptionValues(string propertyName, object val)
[TestCase("InternalTraceLevel", "--trace:Debug")]
[TestCase("ShowHelp", "--help", true)]
[TestCase("ShowHelp", "-h", true)]
[TestCase("DebugTests", "--debug", true)]
#if DEBUG
[TestCase("DebugAgent", "--debug-agent", true)]
#endif
Expand Down Expand Up @@ -110,7 +112,7 @@ public void InvalidOptionsAreDetected(string option)
private static PropertyInfo GetPropertyInfo(string propertyName)
{
PropertyInfo property = typeof(CommandLineOptions).GetProperty(propertyName);
Assert.That(property, Is.Not.Null, "The property '{0}' is not defined", propertyName);
Assert.That(property, Is.Not.Null, $"The property '{propertyName}' is not defined");
return property;
}
}
Expand Down
4 changes: 4 additions & 0 deletions src/Common/testcentric.common/Options/CommandLineOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,9 @@ public CommandLineOptions(params string[] args)
InternalTraceLevel = v;
});

this.Add("debug", "Launch debugger when user tests start",
v => DebugTests = v != null);

#if DEBUG
this.Add("debug-agent", "Launch debugger in testcentric-agent when it starts.",
v => DebugAgent = v != null);
Expand Down Expand Up @@ -126,6 +129,7 @@ public CommandLineOptions(params string[] args)
public int MaxAgents { get; private set; }
public string InternalTraceLevel { get; private set; }
public string WorkDirectory { get; private set; }
public bool DebugTests { get; private set; }
public bool DebugAgent { get; private set; }

// Error Processing
Expand Down
16 changes: 2 additions & 14 deletions src/TestCentric/testcentric.gui/Presenters/TestCentricPresenter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ private void WireUpEvents()

// Run loaded test automatically if called for
if (_model.IsPackageLoaded && _options.RunAllTests)
RunAllTests();
_model.RunAllTests();
// Currently, --unattended without --run does nothing except exit.
else if (_options.Unattended)
_view.Close();
Expand Down Expand Up @@ -428,7 +428,7 @@ private void WireUpEvents()
_view.StatusBarView.Visible = _view.StatusBarCommand.Checked;
};

_view.RunAllCommand.Execute += () => RunAllTests();
_view.RunAllCommand.Execute += () => _model.RunAllTests();
_view.RunSelectedCommand.Execute += () => RunSelectedTests();
_view.RunFailedCommand.Execute += () => RunFailedTests();

Expand Down Expand Up @@ -628,12 +628,6 @@ public void ReloadTests()

#region Run Methods

public void RunAllTests()
{
_model.ClearResults();
_model.RunAllTests();
}

public void RunSelectedTests()
{
RunTests(_view.TreeView.SelectedTests);
Expand All @@ -651,12 +645,6 @@ public void RunTests(TestNode test)

public void RunTests(TestNode[] tests)
{
if (_settings.Engine.ReloadOnRun)
{
_model.ClearResults();
_model.ReloadTests();
}

if (tests != null && tests.Length > 0)
_model.RunTests(new TestSelection(tests));
}
Expand Down
26 changes: 17 additions & 9 deletions src/TestCentric/testcentric.gui/Presenters/TreeViewPresenter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -60,17 +60,19 @@ public TreeViewPresenter(ITestTreeView view, ITestModel model)
_view.ShowCheckBoxes.Checked = showCheckBoxes;

_view.RunCommand.Enabled = false;
_view.DebugCommand.Enabled = false;

WireUpEvents();
}

private void WireUpEvents()
{
_model.Events.TestsLoading += (e) => _view.RunCommand.Enabled = false;
_model.Events.TestsLoading += (e) => _view.RunCommand.Enabled = _view.DebugCommand.Enabled = false;

_model.Events.TestLoaded += (e) =>
{
_view.RunCommand.Enabled = true;
_view.DebugCommand.Enabled = true;
_view.CheckPropertiesDialog();

LoadTests(GetTopDisplayNode(e.Test));
Expand Down Expand Up @@ -102,6 +104,7 @@ private void WireUpEvents()
reloadState = VisualState.LoadFrom(_view);

_view.RunCommand.Enabled = false;
_view.DebugCommand.Enabled = false;
};

_model.Events.TestReloaded += (e) =>
Expand All @@ -118,6 +121,7 @@ private void WireUpEvents()
_view.Accept(new TestFilterVisitor(_treeFilter));

_view.RunCommand.Enabled = true;
_view.DebugCommand.Enabled = true;
};

_model.Events.TestChanged += (e) =>
Expand All @@ -131,6 +135,7 @@ private void WireUpEvents()
_model.Events.TestsUnloading += (e) =>
{
_view.RunCommand.Enabled = false;
_view.DebugCommand.Enabled = false;

_view.ClosePropertiesDialog();

Expand All @@ -152,17 +157,18 @@ private void WireUpEvents()
_treeMap.Clear();
};

_model.Events.TestUnloaded += (e) => _view.RunCommand.Enabled = false;
_model.Events.TestUnloaded += (e) => _view.RunCommand.Enabled = _view.DebugCommand.Enabled = false;

_model.Events.RunStarting += (e) =>
{
foreach (var node in _view.Tree.Nodes)
((TestSuiteTreeNode)node).ClearResults();
_view.RunCommand.Enabled = false;
_view.DebugCommand.Enabled = false;
_view.CheckPropertiesDialog();
};

_model.Events.RunFinished += (e) => _view.RunCommand.Enabled = true;
_model.Events.RunFinished += (e) => _view.RunCommand.Enabled = _view.DebugCommand.Enabled = true;

_model.Events.TestFinished += (e) => SetTestResult(e.Result);

Expand Down Expand Up @@ -213,18 +219,20 @@ private void WireUpEvents()

_view.RunCommand.Execute += () =>
{
if (_settings.Engine.ReloadOnRun)
{
_model.ClearResults();
_model.ReloadTests();
}

if (_view.ContextNode != null)
_model.RunTests(_view.ContextNode.Test);
else
_model.RunTests(new TestSelection(_view.SelectedTests));
};

_view.DebugCommand.Execute += () =>
{
if (_view.ContextNode != null)
_model.DebugTests(_view.ContextNode.Test);
else
_model.DebugTests(new TestSelection(_view.SelectedTests));
};

_view.Tree.ContextMenuStrip.Opened += (s, e) => InitializeContextMenu();

_view.ShowCheckBoxes.CheckedChanged += () => _view.CheckBoxes = _view.ShowCheckBoxes.Checked;
Expand Down
1 change: 1 addition & 0 deletions src/TestCentric/testcentric.gui/Views/ITestTreeView.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ public interface ITestTreeView
ContextMenuStrip ContextMenuStrip { get; }

ICommand RunCommand { get; }
ICommand DebugCommand { get; }
IChecked ShowFailedAssumptions { get; }
IToolStripMenu ProjectMenu { get; }
IToolStripMenu ActiveConfiguration { get; }
Expand Down
22 changes: 16 additions & 6 deletions src/TestCentric/testcentric.gui/Views/TestTreeView.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions src/TestCentric/testcentric.gui/Views/TestTreeView.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ public TestTreeView()
InitializeComponent();

RunCommand = new ToolStripMenuElement(runMenuItem);
DebugCommand = new ToolStripMenuElement(debugMenuItem);
ShowFailedAssumptions = new ToolStripMenuElement(failedAssumptionsMenuItem);
ProjectMenu = new ToolStripMenuElement(projectMenuItem);
ActiveConfiguration = new ToolStripMenuElement(activeConfigurationMenuItem);
Expand Down Expand Up @@ -113,6 +114,7 @@ private void WireUpEvents()
public event FileDropEventHandler FileDrop;

public ICommand RunCommand { get; private set; }
public ICommand DebugCommand { get; private set; }
public IChecked ShowFailedAssumptions { get; private set; }
public IToolStripMenu ProjectMenu { get; private set; }
public IToolStripMenu ActiveConfiguration { get; private set; }
Expand Down Expand Up @@ -432,5 +434,10 @@ private void FindCheckedNodes(TreeNodeCollection nodes, bool topLevel)
}

#endregion

private void debugToolStripMenuItem_Click(object sender, EventArgs e)
{

}
}
}
2 changes: 1 addition & 1 deletion src/TestCentric/testcentric.gui/Views/TestTreeView.resx
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAA2
DwAAAk1TRnQBSQFMAgEBBQEAASQBAAEkAQABEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA
DwAAAk1TRnQBSQFMAgEBBQEAASwBAAEsAQABEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEYBgABGOEAA9YDtwOYA4ADtQPWqwADnAGdAYQBlQHIAYABsQFRASwBRgErARgBJAFc
AT0BUgGeAYYBlgOcpQABhAGDAYQByQGBAbQB2AFVAbAB3AFhAbYBZgExAVYBLQEWASYBdgE5AWMB3AFk
AbcBzAGJAbcBhAGDAYSfAAOcAckBfgGyAdgBUgGvAd4BaAG5AeMBegHCAeIBhAHEAb8BdAGnAc8BeQG0
Expand Down
5 changes: 1 addition & 4 deletions src/TestModel/model/ITestModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ public interface ITestModel : IDisposable
void RunAllTests();

// Debug all tests
void DebugAllTests();
//void DebugAllTests();

// Run just the specified ITestItem
void RunTests(ITestItem testItem);
Expand All @@ -119,9 +119,6 @@ public interface ITestModel : IDisposable
// Get the TestPackage represented by a test,if available
TestPackage GetPackageForTest(string id);

// Clear the results for all tests
void ClearResults();

// Broadcast event when SelectedTestItem changes
void NotifySelectedItemChanged(ITestItem testItem);

Expand Down
Loading

0 comments on commit 188a45c

Please sign in to comment.