HBASE-30059 Upgrade hbase-server to use junit5 Part6#8112
Merged
liuxiaocs7 merged 2 commits intoapache:branch-2from Apr 24, 2026
Merged
HBASE-30059 Upgrade hbase-server to use junit5 Part6#8112liuxiaocs7 merged 2 commits intoapache:branch-2from
liuxiaocs7 merged 2 commits intoapache:branch-2from
Conversation
Member
liuxiaocs7
commented
Apr 22, 2026
- for branch-2
- see: HBASE-30059
8a83b53 to
3e9fcda
Compare
3e9fcda to
0e7a249
Compare
There was a problem hiding this comment.
Pull request overview
Migrates additional hbase-server (and one shared hbase-common) tests on branch-2 from JUnit 4 to JUnit 5 as part of HBASE-30059, continuing the project’s JUnit5 transition.
Changes:
- Replace JUnit4 lifecycle/category/rules usage (
@BeforeClass/@AfterClass,@Category,@Rule/@ClassRule,ExpectedException, Parameterized runner) with JUnit5 equivalents (@BeforeAll/@AfterAll,@Tag, extensions,assertThrows,@TestTemplate). - Update assertions to JUnit Jupiter (
org.junit.jupiter.api.Assertions) and adjust message parameter ordering in many places. - Introduce/standardize JUnit5-friendly test naming/table naming patterns (e.g.,
TestInfo,TableNameTestExtension, and deprecateTableNameTestRule).
Reviewed changes
Copilot reviewed 44 out of 44 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionReplicas.java | Convert assertions and annotations to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/replication/TestModifyPeerProcedureRetryBackoff.java | Switch lifecycle + categories to JUnit5 tags/annotations. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/replication/TestDisablePeerModification.java | Migrate parameterized test to @HBaseParameterizedTestTemplate + JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestWakeUpUnexpectedProcedure.java | Convert JUnit4 categories/lifecycle to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestTransitRegionStateProcedure.java | Replace JUnit4 rules with TestInfo and JUnit5 lifecycle. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestTRSPPersistUninitializedSubProc.java | Convert categories/lifecycle to JUnit5 tags/annotations. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.java | Replace TestName rule with TestInfo-backed method name tracking. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestSCPGetRegionsRace.java | Convert JUnit4 categories/lifecycle to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRollbackSCP.java | Convert JUnit4 categories/lifecycle to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.java | Replace ExpectedException with assertThrows, migrate lifecycle/tags. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestReportRegionStateTransitionRetry.java | Convert JUnit4 categories/lifecycle to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestReportRegionStateTransitionFromDeadServer.java | Convert assertions + lifecycle/categories to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestReportOnlineRegionsRace.java | Convert JUnit4 categories/lifecycle to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionStates.java | Convert setup/teardown and assertions to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionStateStore.java | Replace TableNameTestRule with TableNameTestExtension (JUnit5 extension). |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionSplitAndSeparateChildren.java | Replace TestName rule with TestInfo-backed method name tracking. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionSplit.java | Replace TestName rule with TestInfo-backed method name tracking. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionReplicaSplit.java | Replace TestName rule with TestInfo-backed method name tracking. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionMoveAndAbandon.java | Convert per-test setup/teardown to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionBypass.java | Replace TestName rule usage with TestInfo, migrate lifecycle. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionAssignedToMultipleRegionServers.java | Convert categories/lifecycle/assertions to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestReduceExcessRegionReplicasBlockedByRIT.java | Convert categories/lifecycle/assertions to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRaceBetweenSCPAndTRSP.java | Convert categories/lifecycle to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestOpenRegionProcedureHang.java | Convert categories/lifecycle to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestOpenRegionProcedureBackoff.java | Convert categories/lifecycle to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestModifyTableWhileMerging.java | Convert assertions/lifecycle to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.java | Replace TestName rule with TestInfo-backed method name tracking, migrate lifecycle. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestMasterAbortWhileMergingTable.java | Convert assertions/lifecycle/categories to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestHbckChore.java | Convert per-test setup and tags to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestExceptionInUnassignedRegion.java | Convert assertions/lifecycle/categories to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestExceptionInAssignRegion.java | Convert assertions/lifecycle/categories to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestDeadServerMetricRegionChore.java | Convert per-test setup/teardown to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestCloseRegionWhileRSCrash.java | Convert lifecycle/categories to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestAssignmentOnRSCrash.java | Convert per-test setup/teardown and assertions to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestAssignmentManagerUtil.java | Convert lifecycle and assertions to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestAssignmentManagerLoadMetaRegionState.java | Convert lifecycle/categories to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestAssignmentManagerBase.java | Replace TestName rule with TestInfo-based method name tracking; migrate lifecycle. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.java | Update to use base’s testMethodName and JUnit5 assertions/tags. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestAssignRegionToUninitializedRegionServer.java | Convert lifecycle/categories/assertions to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestAMServerFailedOpen.java | Convert categories/assertions to JUnit5 and base testMethodName. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestAMAssignWithRandExec.java | Convert categories to JUnit5 tags. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/AssignmentTestingUtil.java | Convert static assertions to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/TestMetaTableAccessor.java | Replace TestName rule with TestInfo injection across tests; migrate to JUnit5. |
| hbase-common/src/test/java/org/apache/hadoop/hbase/TableNameTestRule.java | Deprecate in favor of TableNameTestExtension during JUnit5 migration. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 44 out of 44 changed files in this pull request and generated 2 comments.
Comments suppressed due to low confidence (2)
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestTransitRegionStateProcedure.java:1
TestInfo#getTestMethod()returns anOptional, but the code calls.get()directly, which will throw aNoSuchElementExceptionwith a poor diagnostic if the method is absent (e.g., some templated/dynamic scenarios). PreferorElseThrow(...)with a descriptive message, or derive the name viatestInfo.getDisplayName()if that’s acceptable for table naming.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.java:1- Using
assertTrue(regions != null, ...)andassertTrue(regions.length == 1, ...)makes failures less descriptive than dedicated assertions. PreferassertNotNull(regions, ...)andassertEquals(1, regions.length, ...)to improve readability and failure output (expected/actual).
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.