-
Notifications
You must be signed in to change notification settings - Fork 703
Testing
Terminal.Gui
uses xunit for automated unit tests run automatically with Github Actions.
- Running tests in parallel is disabled because
Application
is a singleton. Do not change those settings.
- Do. Please. Add lots.
- Structure the tests by class. Name the test classes in the form of
ClassNameTests
and the fileClassNameTests.cs
. - The test functions themselves should have descriptive names like
TestBeginEnd
. - IMPORTANT: Remember
Application
is a static class (singleton). You must clean up after your tests by callingApplication.Shutdown
.
See the README.md in UnitTests/
for details on how xunit is configured.
-
Ensure a UI Catalog Scenario has been developed that specifically exercises the code involved in the PR. This Scenario should explicitly and intentionally exercise the following common functional areas:
-
Absolute Positioning using constructors that take absolute coordinates (
Rect
,x
,y
, etc...). -
Computed Positioning using constructors that do not take coordinates. Test various forms of computed positioning (e.g.
Pos.Percent
,Pos.Y(view)
, etc...) and sizing (e.g.Dim.Fill
, ...). -
Use the
All Views
Scenario to test Computed Positioning
-
-
Test on both Windows and Linux.
-
Run through every Scenario in
UI Catalog
and look for regressions or broken behavior.- Resize terminal window to check for layout and clipping bugs.
- Drag
Windows
with the mouse looking for layout or clipping bugs. - Use
tab
andshift-tab
to ensure tab behavior has not broken.
-
Run
demo.c
and ensure it has not broken (however, recognizing it's not a great sample any more).
Please edit this wiki with other regression tests you think of.