> Delivers the following enhancements:
> - wires the manual tests to the main gradle build 
> https://bugs.openjdk.org/browse/JDK-8296441
> - removes the limitation of single source file for manual tests
> - provides the `ManualTestWindow` base class for manual tests with pass/fail 
> buttons and instruction text area
> - modified EmojiTest to showcase the new `ManualTestWindow`
> - provides the manual test runner `TestRunnerApp` which allows for running 
> manual tests in sequence or any order
> 
> At the moment, the new code is placed in the `tests/manual2` directory (we 
> might decide to move it back to tests/manual once all the tests are migrated 
> and placed in their own packages).
> 
> The `gradle manualApps` builds the classes in the 
> `tests/manual2/build/classes` dir and generates a jar file containing all the 
> tests, `ManualTestWindow`, `TestRunnerApp`, and the related test 
> infrastructure (utilities etc.) in the `tests/manual2/dist/ManualTests.jar`.
> 
> ## Gradle Build
> 
> `gradle clean manualApps`
> 
> 
> ## ManualTestWindow
> 
> This class simplifies writing manual tests.  Example:
> 
> 
> public class ManualTestExample extends ManualTestWindow {
>     public ManualTestExample() {
>         super(
>             "Manual Test Example",
>             """
>             Instructions:
>             1. you will see a button named "Test"
>             2. press the button
>             3. verify that the button can be pressed""",
>             400, 250
>         );
>      }
> 
>      @Override
>      protected Node createContent() {
>          return new Button("Test");
>      }
> }
> 
> 
> ![Screenshot 2025-03-28 at 11 50 
> 16](https://github.com/user-attachments/assets/b44a7eb1-d98f-44a5-b13e-612b31c94c60)
> 
> ## TestRunnerApp
> 
> <img width="890" height="456" alt="Screenshot 2026-04-20 at 13 24 41" 
> src="https://github.com/user-attachments/assets/1bd6b694-83cc-43b5-8b09-703f5f3b9d68";
>  />
> 
> 
> Features:
> 
> - loads default test plan
> - allows to load a test plan from file
> 
> Possible improvements:
> 
> - execute single test within tests/manual2 without writing a test plan
> - generating report
> 
> 
> ## Migrating Manual Tests
> 
> Migrating existing tests is simple:
> - the tests must not use the default package
> - `TestRunnerApp` allows to drop the `main()` method.
> - FQCN of the test added to the default test plan
> - the test can optionally extend the `ManualTestWindow`
> 
> 
> ## Questions to Reviewers
> 
> 1. should the `apps` target depend on `manualApps` so it builds the tests 
> automatically?
> 2. what other functionality should be implemented in the `ManualTestWindow`?
> 3. what other function...

Andy Goryachev has updated the pull request with a new target base due to a 
merge or a rebase. The incremental webrev excludes the unrelated changes 
brought in by the merge/rebase. The pull request contains four additional 
commits since the last revision:

 - Merge branch 'master' into 8319555.manual2
 - ws
 - ws
 - manual2

-------------

Changes:
  - all: https://git.openjdk.org/jfx/pull/2156/files
  - new: https://git.openjdk.org/jfx/pull/2156/files/148994fe..2545200f

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jfx&pr=2156&range=01
 - incr: https://webrevs.openjdk.org/?repo=jfx&pr=2156&range=00-01

  Stats: 1439 lines in 38 files changed: 1184 ins; 158 del; 97 mod
  Patch: https://git.openjdk.org/jfx/pull/2156.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/2156/head:pull/2156

PR: https://git.openjdk.org/jfx/pull/2156

Reply via email to