You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Josh Elser (JIRA)" <ji...@apache.org> on 2017/11/20 22:47:00 UTC

[jira] [Created] (HBASE-19310) Verify IntegrationTests don't rely on Rules outside of JUnit context

Josh Elser created HBASE-19310:
----------------------------------

             Summary: 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)