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