Skip to content

Commit 082caa4

Browse files
committed
Added diagrams to UITest readme
1 parent 58e8557 commit 082caa4

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

src/Tests/UITests/README.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,24 @@
22
The toolkit's UI Tests use Appium to simulate gestures on all six supported platforms (WPF, WinUI, Maui Android, Maui iOS, and Maui Mac Catalyst).
33

44
## Structure
5+
At runtime, the test system works as a layered request chain.
6+
7+
```mermaid
8+
flowchart LR
9+
Runner["<b>UITest Runner</b><br/>MSTest + shared test code"]
10+
Appium["<b>Appium Server</b><br/>Translates request to native framework calls"]
11+
Native["<b>Native automation / accessibility driver</b><br/>(Windows UI Automation, UiAutomator2, XCUITest)"]
12+
App["<b>UITest App</b><br/>WPF / WinUI / MAUI"]
13+
14+
Runner -->|"UI command request"| Appium
15+
Appium -->|"Translated command"| Native
16+
Native -->|"Find, inspect, tap, type, capture"| App
17+
18+
App -->|"UI state / screenshots / accessibility data"| Native
19+
Native -->|"Automation result"| Appium
20+
Appium -->|"Translated driver response"| Runner
21+
```
22+
523
### Test Runner Projects
624
Each platform has its own test runner project with the naming convention `Toolkit.UITests.Platform`. Each test project is an MSTest SDK application that can run either in its own console or using VSTest.
725

@@ -20,6 +38,29 @@ Each framework (WPF, WinUI, and Maui) has a test app project with the naming con
2038

2139
Each app contains a collection of mirrored test pages. Xaml files are necessarily unique to each framework, but code-behinds are shared in the [`Toolkit.UITests.TestPages.Shared`](./Toolkit.UITests.TestPages.Shared) library.
2240

41+
### Architecture Diagram
42+
```mermaid
43+
flowchart TD
44+
Props["<b>Directory.Build.props</b><br>General settings file"]
45+
46+
47+
SharedTests["<b>Toolkit.UITests.Shared</b><br/>Tests and shared Appium logic"]
48+
Runners["<b>Test Runner Projects</b><br/>Platform-specific appium setup code"]
49+
50+
Toolkits["<b>ArcGIS Maps SDK for .NET Toolkit</b>"]
51+
SharedPages["<b>Toolkit.UITests.TestPages.Shared</b><br/>Shared test page code-behinds"]
52+
Apps["<b>Test app projects</b><br>Contain mirrored xaml test pages"]
53+
54+
Props --> Runners
55+
Props --> Apps
56+
57+
SharedTests --> Runners
58+
SharedPages --> Apps
59+
60+
Toolkits --> Apps
61+
Runners -->|"Manipulate via Appium"| Apps
62+
```
63+
2364

2465
## Appium Inspector
2566
It is highly recommended that you install Appium Inspector for troubleshooting appium setup and testing. Downloads and documentation can be found here: https://github.com/appium/appium-inspector/.

0 commit comments

Comments
 (0)