RFR: 8365776: Convert JShell tests to use JUnit instead of TestNG

Jan Lahoda jlahoda at openjdk.org
Fri Sep 5 10:03:33 UTC 2025


This is a conversion of JShell tests from TestNG to JUnit 5.

To make the changes more transparent, there are 4 commit in this PR:
- https://github.com/openjdk/jdk/pull/26841/commits/c6b5d8441ad532551e626b3542431aa3f479ffc0: this one changes a name of a custom interface representing test cases, so that subsequent commits can use a simple name for `org.junit.jupiter.api.Test` (otherwise `Test` would resolve to the custom interface is subclasses of `UITesting`, and FQN would need to be used to refer to the annotation).
- https://github.com/openjdk/jdk/pull/26841/commits/2afee7d258f646f822d0b1bc3465d5595058e3df: the bulk of changes, done automatically by: 
 The bulk of the changes is done automatically, using this tool/script:
https://github.com/lahodaj/netbeans/tree/19515c3e2dbc07d977ca227d933197f856121ae5/java/java.openjdk.project/junit-convert
- https://github.com/openjdk/jdk/pull/26841/commits/8ca03af1b4d06e479cdfe7cc66186222feeaaa76: manual adjustments for things the tool does not handle (at least currently):
    - one indent problem
    - two uses of injected `java.lang.reflect.Method`, which needs to be replaced with `TestInfo`
    - a different way to skip a test (normally, the tool detects and converts uses of `SkipException`, but that exception was not used on this place).
- https://github.com/openjdk/jdk/pull/26841/commits/639da0171a593031dae6a73830bb1665b7097e73: scripted update to copyright headers, done using:

bash ./make/scripts/update_copyright_year.sh -b `git merge-base master jshell-upgrade-testng-to-junit`


As part of validation of this change, this script:
[CompareTestResults.java](https://github.com/user-attachments/files/22169483/CompareTestResults.java)
was used to compare the results in `junit.txt` and `testng.txt` in test results before and after the change, and it didn't find a difference in test counts.

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

Commit messages:
 - Update copyright years.
 - Manual adjustments.
 - Automatic changes.
 - Renaming UITesting.Test to UITesting.UITest to avoid clashes with the JUnit @Test annotation.

Changes: https://git.openjdk.org/jdk/pull/26841/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=26841&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8365776
  Stats: 1771 lines in 123 files changed: 740 ins; 216 del; 815 mod
  Patch: https://git.openjdk.org/jdk/pull/26841.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/26841/head:pull/26841

PR: https://git.openjdk.org/jdk/pull/26841


More information about the compiler-dev mailing list