HBASE-30138 Upgrade hbase-server to use junit5 Part16#8271
Open
liuxiaocs7 wants to merge 1 commit into
Open
Conversation
Member
liuxiaocs7
commented
May 23, 2026
- for branch-3
- see: HBASE-30138
There was a problem hiding this comment.
Pull request overview
This PR continues the branch-3 migration for HBASE-30138 by converting a large set of hbase-server regionserver tests from JUnit4 to JUnit5, including updates to assertions, lifecycle annotations, tagging, and parameterized test infrastructure.
Changes:
- Migrated test classes from JUnit4 (
@Before/@After/@Category/@RunWith, Rules) to JUnit5 (@BeforeEach/@AfterEach/@Tag, extensions). - Converted parameterized tests to
@HBaseParameterizedTestTemplate+@TestTemplatewithStream<Arguments>providers. - Updated assertion imports/usages to
org.junit.jupiter.api.Assertionsand adjusted assertion message parameter ordering.
Reviewed changes
Copilot reviewed 51 out of 51 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/TestNotCleanupCompactedFileWhenRegionWarmup.java | JUnit5 lifecycle/tag migration and assertion modernization. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestNewVersionBehaviorFromClientSide.java | JUnit5 conversion; replaces TestName rule with TestInfo-derived name. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMutateRowsRecovery.java | JUnit5 lifecycle/tag migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMultiVersionConcurrencyControlBasic.java | JUnit5 tagging and assertions migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMultiVersionConcurrencyControl.java | JUnit5 tagging and assertions migration (drops JUnit4 Assert). |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.java | Converts JUnit4 parameterized test to @HBaseParameterizedTestTemplate + @TestTemplate. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMultiColumnScannerWithNoneAndUseDataEncoding.java | Converts parameterized subclass to JUnit5 template + constructor injection. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMultiColumnScannerWithNoneAndNoDataEncoding.java | Converts parameterized subclass to JUnit5 template + constructor injection. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMultiColumnScannerWithAlgoGZAndUseDataEncoding.java | Converts parameterized subclass to JUnit5 template + constructor injection. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMultiColumnScannerWithAlgoGZAndNoDataEncoding.java | Converts parameterized subclass to JUnit5 template + constructor injection. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMultiColumnScanner.java | Refactors base parameter generation to Stream<Arguments> and uses @TestTemplate. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMinVersions.java | JUnit5 conversion; replaces TestName with TestInfo. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMinorCompaction.java | JUnit5 conversion; replaces TestName with TestInfo. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMiniBatchOperationInProgress.java | JUnit5 tagging and assertions migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsUserAggregate.java | JUnit5 lifecycle/tag migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableRequests.java | JUnit5 conversion and adds @AfterEach cleanup for global metric registry. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableMetricsMap.java | JUnit5 lifecycle/tag migration and assertion modernization. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.java | JUnit5 lifecycle/tag migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsRegionWrapperTableDescriptorHash.java | JUnit5 lifecycle/tag migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsRegionServerAggregate.java | JUnit5 tagging and assertions migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsRegionServer.java | JUnit5 lifecycle/tag migration and registry cleanup maintained. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsRegion.java | JUnit5 tagging and assertions migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsJvm.java | JUnit5 conversion; modernizes assertions and lifecycle annotations. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsHeapMemoryManager.java | JUnit5 lifecycle/tag migration and assertion modernization. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMergesSplitsAddToTracker.java | Migrates JUnit4 rule to TableNameTestExtension and JUnit5 lifecycle. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStoreSegmentsIterator.java | JUnit5 lifecycle/tag migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemstoreLABWithoutPool.java | Migrates @Ignore to @Disabled and converts to JUnit5. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStoreLAB.java | JUnit5 conversion; updates assertions and lifecycle annotations. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStoreFlusher.java | JUnit5 conversion; replaces TestName with TestInfo. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStoreChunkPool.java | JUnit5 lifecycle/tag migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMaxResultsPerColumnFamily.java | JUnit5 conversion; replaces TestName with TestInfo. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMajorCompaction.java | Converts parameterization to @HBaseParameterizedTestTemplate + @TestTemplate. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestLogRoller.java | JUnit5 lifecycle/tag migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestKeyValueScanFixture.java | JUnit5 tagging and assertions migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestKeyValueHeap.java | JUnit5 assertions migration (including assertThrows). |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestKeepDeletes.java | JUnit5 conversion; replaces TestName with TestInfo. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestJoinedScanners.java | JUnit5 conversion; replaces expected-exception style with assertThrows. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestIsDeleteFailure.java | JUnit5 conversion; replaces TestName with TestInfo. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestInputStreamBlockDistribution.java | JUnit5 lifecycle/tag migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHStoreFile.java | JUnit5 conversion; replaces TestName with TestInfo. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHStore.java | JUnit5 conversion; replaces TestName with TestInfo and converts timeout to @Timeout. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionWithInMemoryFlush.java | JUnit5 tagging and assertions migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionTracing.java | JUnit5 migration using OpenTelemetryExtension and TableNameTestExtension. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionServerBulkLoad.java | Converts JUnit4 parameterized test to @HBaseParameterizedTestTemplate + @TestTemplate. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionReplayEvents.java | JUnit5 conversion; replaces TestName with TestInfo. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionOnCluster.java | JUnit5 conversion; replaces TestName with TestInfo. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionFileSystem.java | JUnit5 conversion; replaces TestName with TestInfo. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java | Large JUnit5 conversion: lifecycle, assertions, disabled tests, and exception assertions. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHMobStore.java | JUnit5 conversion; replaces TestName with TestInfo and assertion imports. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHeapMemoryManager.java | JUnit5 tagging and assertions migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHdfsSnapshotHRegion.java | JUnit5 lifecycle/tag migration and assertion modernization. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| get.setTimestamp(ts - 3); | ||
| result = region.get(get); | ||
| Assert.assertEquals(result.getColumnCells(c0, c0).size(), 0); | ||
| assertEquals(result.getColumnCells(c0, c0).size(), 0); |
| get.setTimeRange(0, ts - 2); | ||
| result = region.get(get); | ||
| Assert.assertEquals(result.getColumnCells(c0, c0).size(), 0); | ||
| assertEquals(result.getColumnCells(c0, c0).size(), 0); |
| s.reseek(k); | ||
|
|
||
| assertNotNull("Intial reseek should position at the beginning of the file", s.peek()); | ||
| assertNotNull(s.peek(), "Intial reseek should position at the beginning of the file"); |
| rsm.getRegionServerWrapper()); | ||
| assertNotNull(rsm.getMetricsSource(), "There should be a hadoop1/hadoop2 metrics source"); | ||
| assertNotNull(rsm.getRegionServerWrapper(), | ||
| "The RegionServerMetricsWrapper should be accessable"); |
|
|
||
| int metricsMapSize = agg.getMetricsRegistry().getMetricsMap().size(); | ||
| assertTrue("table metrics added then metricsMapSize should larger than 0", metricsMapSize > 0); | ||
| assertTrue(metricsMapSize > 0, "table metrics added then metricsMapSize should larger than 0"); |
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.