[
https://issues.apache.org/jira/browse/NUTCH-3125?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sebastian Nagel reassigned NUTCH-3125:
--------------------------------------
Assignee: Isabelle Giguere (was: Lewis John McGibbney)
> Replace retired MRUnit dependency with Mockito + JUnit 5
> --------------------------------------------------------
>
> Key: NUTCH-3125
> URL: https://issues.apache.org/jira/browse/NUTCH-3125
> Project: Nutch
> Issue Type: Task
> Components: build, dependency, test
> Reporter: Lewis John McGibbney
> Assignee: Isabelle Giguere
> Priority: Minor
> Fix For: 1.22
>
>
> [Apache MRUnit|https://mrunit.apache.org/] was a specialized Java library for
> unit testing MapReduce components (mappers, reducers, and drivers) in
> isolation, without needing a full Hadoop cluster. Since its retirement in
> 2016 due to inactivity, the community shifted toward more general-purpose
> testing tools that can handle Hadoop's unique architecture, such as mocking
> contexts, writables, and static methods.
> I forgot that Nutch depends on MRUnit until I revisited NUTCGH-288.
>
> I propose we replace the MRUnit test dependency with
> [Mockito|https://site.mockito.org/]; a popular mocking framework that would
> allow us to mock Hadoop's Mapper.Context, Reducer.Context, and other
> framework elements. This directly replicates MRUnit's ability to test
> mappers/reducers in isolation by simulating input/output without a cluster.
> Mockito is lightweight, actively maintained, and doesn't require
> Hadoop-specific jars beyond the existing project dependencies defined in
> ivy.xml. Mockito can be combined with JUnit 5 for assertions. For static
> method mocking (e.g., Hadoop counters), apparently we can even pair it with
> [PowerMock|https://github.com/powermock/powermock]!
>
> Currently MRUnit is used in the following test Classes
> ./org/apache/nutch/crawl/CrawlDbUpdateTestDriver.java
> ./org/apache/nutch/indexer/TestIndexerMapReduce.java
--
This message was sent by Atlassian Jira
(v8.20.10#820010)