[
https://issues.apache.org/jira/browse/HBASE-19310?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16261098#comment-16261098
]
Josh Elser commented on HBASE-19310:
------------------------------------
{code}
for f in $(fgrep -R 'IntegrationTests.class' **/src/test/java | fgrep -v
'IntegrationTests.java' | awk -F: '{print $1}' | sort -u); do fgrep -q
'TestName' $f && echo $f; done
{code}
Looks like IntegrationTestImportTsv is the only culprit given the above. As
such, I'll just fix this one test rather than pushing something into
IntegrationTestDriver.
> Verify IntegrationTests don't rely on Rules outside of JUnit context
> --------------------------------------------------------------------
>
> Key: HBASE-19310
> URL: https://issues.apache.org/jira/browse/HBASE-19310
> Project: HBase
> Issue Type: Bug
> Components: integration tests
> Reporter: Romil Choksi
> Assignee: Josh Elser
> Priority: Critical
> Fix For: 2.0.0-beta-1
>
>
> {noformat}
> 2017-11-16 00:43:41,204 INFO [main] mapreduce.IntegrationTestImportTsv:
> Running test testGenerateAndLoad.
> Exception in thread "main" java.lang.NullPointerException
> at org.apache.hadoop.hbase.TableName.valueOf(TableName.java:461)
> at
> org.apache.hadoop.hbase.mapreduce.IntegrationTestImportTsv.testGenerateAndLoad(IntegrationTestImportTsv.java:189)
> at
> org.apache.hadoop.hbase.mapreduce.IntegrationTestImportTsv.run(IntegrationTestImportTsv.java:229)
> at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
> at
> org.apache.hadoop.hbase.mapreduce.IntegrationTestImportTsv.main(IntegrationTestImportTsv.java:239)
> {noformat}
> (Potential line-number skew)
> {code}
> @Test
> public void testGenerateAndLoad() throws Exception {
> LOG.info("Running test testGenerateAndLoad.");
> final TableName table = TableName.valueOf(name.getMethodName());
> {code}
> The JUnit framework sets the test method name inside of the JUnit {{Rule}}.
> When we invoke the test directly (ala {{hbase
> org.apache.hadoop.hbase.mapreduce.IntegrationTestImportTsv}}), this
> {{getMethodName()}} returns {{null}} and we get the above stacktrace.
> Should make a pass over the ITs with main methods and {{Rule}}'s to make sure
> we don't have this lurking. Another alternative is to just remove the main
> methods and just force use of {{IntegrationTestsDriver}} instead.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)