Josh Elser commented on HBASE-20136:

{quote}The problem is, we can not find the test which does not have a category 
now, and this is not the fault of the test rule, nor the run listener, this is 
because our config of the surefire plugin...
Got it. I agree with you that we could/should improve this one.
{quote}Whether we should improve the RuleChecker depends on the solution
Aha, this is where I disagree with you. I think making sure that we have this 
failsafe in the rule checker is a nice "save our butts" solution, as 
illustrated by this situation we got ourselves in. The error message we 
actually get (the super obtuse "Test Mechanism Failed" one) is pretty crappy – 
I think the spirit of the addendum would make it easier if/when we find 
ourselves in such a situation again.

Thanks for bearing with me.

> TestKeyValue misses ClassRule and Category annotations
> ------------------------------------------------------
>                 Key: HBASE-20136
>                 URL: https://issues.apache.org/jira/browse/HBASE-20136
>             Project: HBase
>          Issue Type: Test
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Minor
>              Labels: CE
>         Attachments: 20136.addendum, 20136.v1.txt, 20136.v2.txt
> hbase-common/src/test/java/org/apache/hadoop/hbase/TestKeyValue.java misses 
> ClassRule and Category annotations.
> TestKeyValue was flagged by internal RE which used mvn command that is 
> different from what Apache Jenkins uses.
> {code}
> mvn -B -nsu test -Dtest=TestKeyValue --projects :hbase-common
> {code}
> ArrayIndexOutOfBoundsException from HBaseClassTestRuleChecker was observed in 
> snippet from dump file:
> {code}
> # Created on 2018-03-05T22:25:50.252
> org.apache.maven.surefire.testset.TestSetFailedException: Test mechanism :: 0
>       at 
> org.apache.maven.surefire.common.junit4.JUnit4RunListener.rethrowAnyTestMechanismFailures(JUnit4RunListener.java:223)
>       at 
> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:168)
>       at 
> org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:373)
>       at 
> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:334)
>       at 
> org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:119)
>       at 
> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:407)
> Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
>       at 
> org.apache.hadoop.hbase.HBaseClassTestRuleChecker.testStarted(HBaseClassTestRuleChecker.java:45)
>       at 
> org.junit.runner.notification.RunNotifier$3.notifyListener(RunNotifier.java:121)
>       at 
> org.junit.runner.notification.RunNotifier$SafeNotifier.run(RunNotifier.java:72)
>       at 
> org.junit.runner.notification.RunNotifier.fireTestStarted(RunNotifier.java:118)
> {code}
> This issue adds the annotations to this test.
> The test passes with annotations added.
> I have searched code base but didn't find other test which misses test 
> category.

This message was sent by Atlassian JIRA

Reply via email to