HBASE-30064 Upgrade hbase-server to use junit5 Part8#8132
Merged
Conversation
Member
liuxiaocs7
commented
Apr 24, 2026
- for branch-2.5
- see: HBASE-30064
There was a problem hiding this comment.
Pull request overview
This PR continues the branch-2.5 effort for HBASE-30064 by migrating a large set of hbase-server (and one hbase-rsgroup) master-procedure-related tests from JUnit4 to JUnit5, updating annotations, rules/extensions, parameterization, and assertion APIs.
Changes:
- Replace JUnit4
@Category,@Before/@After/@BeforeClass/@AfterClass, Rules/ClassRules, andexpected=...tests with JUnit5@Tag,@BeforeEach/@AfterEach/@BeforeAll/@AfterAll, extensions, andassertThrows. - Update tests that relied on
TestName/rules to useTestInfoorTableNameTestExtensionfor unique per-test naming. - Migrate OpenTelemetry and parameterized tests to JUnit5 extension/template-based patterns.
Reviewed changes
Copilot reviewed 60 out of 60 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestWALProcedureStoreOnHDFS.java | JUnit5 migration; converts expected-exception to assertThrows and updates lifecycle annotations. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestTruncateTableWithMasterFailover.java | Replace JUnit4 categories/rules with JUnit5 tags. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestTruncateTableProcedure.java | JUnit5 migration; uses TestInfo for table naming; adds explicit cluster lifecycle. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestTableProcedureWaitingQueueCleanup.java | JUnit5 migration; switch to @BeforeAll/@AfterAll and tags. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestTableDescriptorModificationFromClient.java | JUnit5 migration; uses TestInfo, JUnit5 assertions, and fail(). |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestTableDDLProcedureBase.java | Convert to JUnit5 assertions/hooks; exposes cluster lifecycle helpers for subclasses. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSplitWALProcedure.java | JUnit5 migration; switch to @BeforeEach/@AfterEach and tags/assertions. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSnapshotProcedureWithLockTimeout.java | JUnit5 migration; replace categories/rules and update assertions. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestServerRemoteProcedure.java | JUnit5 migration; replace rules/categories and update assertions. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSchedulerQueueDeadLock.java | JUnit5 migration; uses TestInfo for per-test dirs and safer teardown. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSafemodeBringsDownMaster.java | JUnit5 migration; replace lifecycle annotations and assertions. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCPWithoutZKCoordinated.java | Replace JUnit4 category/rule with JUnit5 tags. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCPWithoutMetaWithoutZKCoordinated.java | Replace JUnit4 category/rule with JUnit5 tags (and adjust classification import). |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCPWithoutMetaWithReplicasWithoutZKCoordinated.java | Replace JUnit4 category/rule with JUnit5 tags. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCPWithoutMetaWithReplicas.java | Replace JUnit4 category/rule with JUnit5 tags. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCPWithoutMeta.java | Replace JUnit4 category/rule with JUnit5 tags and Jupiter @Test. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCPWithReplicasWithoutZKCoordinated.java | Replace JUnit4 category/rule with JUnit5 tags. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCPWithReplicas.java | Replace JUnit4 category/rule with JUnit5 tags. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCPWithMetaWithoutZKCoordinated.java | Replace JUnit4 category/rule with JUnit5 tags. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCPWithMetaWithReplicasWithoutZKCoordinated.java | Replace JUnit4 category/rule with JUnit5 tags. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCPWithMetaWithReplicas.java | Replace JUnit4 category/rule with JUnit5 tags. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCPWithMeta.java | Replace JUnit4 category/rule with JUnit5 tags and Jupiter @Test. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCPBase.java | JUnit5 migration; update base test lifecycle and assertions. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCP.java | JUnit5 migration; tags and assertion API updates. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestRestoreSnapshotProcedure.java | JUnit5 migration; explicit cluster lifecycle + TestInfo naming. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestReopenTableRegionsProcedureInfiniteLoop.java | Replace JUnit4 lifecycle/categories with JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestReopenTableRegionsProcedureBackoff.java | Replace JUnit4 lifecycle/categories with JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestRaceBetweenSCPAndDTP.java | Replace JUnit4 lifecycle/categories with JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestProcedureWaitAndWake.java | Replace JUnit4 lifecycle/categories with JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestProcedureTracing.java | Migrate tracing test from JUnit4 rules to JUnit5 extensions + tags. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestProcedurePriority.java | Replace JUnit4 lifecycle/categories with JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestProcedureAdmin.java | JUnit5 migration; explicit cluster lifecycle + TestInfo naming. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestModifyTableProcedure.java | JUnit5 migration; explicit cluster lifecycle + TestInfo naming + assertion updates. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestModifyNamespaceProcedure.java | Replace JUnit4 lifecycle/categories with JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureSchedulerConcurrency.java | JUnit5 migration; tags + assertion argument ordering updates. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.java | JUnit5 migration; TestInfo naming and assertion updates. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureEvents.java | JUnit5 migration; explicit cluster lifecycle + TestInfo naming. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestMasterObserverPostCalls.java | JUnit5 migration; tags + assertion ordering updates. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestIgnoreUnknownFamily.java | JUnit5 migration; TestInfo naming and lifecycle conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestHBCKSCP.java | Convert JUnit4 Parameterized runner to JUnit5 template-based parameterization + TableName extension. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestFastFailOnProcedureNotRegistered.java | JUnit5 migration; replaces expected=... with assertThrows and adds explicit cluster lifecycle. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestEnableTableWithMasterFailover.java | Replace JUnit4 categories/rules with JUnit5 tags. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestEnableTableProcedure.java | JUnit5 migration; explicit cluster lifecycle + TestInfo naming + assertThrows. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestDisableTableWithMasterFailover.java | Replace JUnit4 categories/rules with JUnit5 tags. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestDisableTableProcedure.java | JUnit5 migration; explicit cluster lifecycle + TestInfo naming + assertion updates. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestDeleteTableWithMasterFailover.java | Replace JUnit4 categories/rules with JUnit5 tags. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestDeleteTableProcedure.java | JUnit5 migration; explicit cluster lifecycle + TestInfo naming + assertThrows. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestDeleteNamespaceProcedure.java | JUnit5 migration; explicit cluster lifecycle + TestInfo naming. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestDeleteColumnFamilyProcedureFromClient.java | JUnit5 migration; tags/lifecycle conversion + fail() updates. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestCreateTableWithMasterFailover.java | Replace JUnit4 categories/rules with JUnit5 tags. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestCreateTableProcedureMuitipleRegions.java | Replace JUnit4 lifecycle/categories with JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestCreateTableProcedure.java | JUnit5 migration; explicit cluster lifecycle + TestInfo naming + assertThrows. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestCreateTableNoRegionServer.java | Replace JUnit4 lifecycle/categories with JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestCreateNamespaceProcedure.java | Replace JUnit4 lifecycle/categories with JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestCreateDeleteTableProcedureWithRetry.java | JUnit5 migration; tags + Jupiter assertions. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestCloneSnapshotProcedureFileBasedSFT.java | JUnit5 migration; sets StoreFileTracker impl for FILE variant. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestCloneSnapshotProcedure.java | JUnit5 migration; explicit cluster lifecycle + per-test teardown hook conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureTestingUtility.java | Update assertion APIs to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/MasterFailoverWithProceduresTestBase.java | JUnit5 migration; replace class lifecycle annotations. |
| hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCPWithReplicasWithRSGroup.java | Replace JUnit4 category/rule with JUnit5 tags. |
💡 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.