@Test annotation param dependsOnMethods in Metamer's ftest causes 
IllegalStateException
---------------------------------------------------------------------------------------

                 Key: RF-10997
                 URL: https://issues.jboss.org/browse/RF-10997
             Project: RichFaces
          Issue Type: Bug
      Security Level: Public (Everyone can see)
         Environment: Metamer 4.1.0-snapshot, r.22501
            Reporter: Jan Jamrich


When tried set dependsOnMethods param to @Test annotation in Metamer's ftests, 
get IllegalStateException thrown from MatrixConfigurator.

There aren't any other methods annotated by @Test with dependsOnMethods param, 
so its possible that this issue is in Metamer longer time without being 
discovered.

By debugging observed that list of methods set to be executed by TestRunner 
depends on this param. In other word, when set dependsOnMethods param to @Test 
annotation - this method (on which was this param set to annotation) doesn't 
appear in list of methods being executed (LinkedList<Method> methods attribute 
of MatrixConfigurator).
This attribute is initialized in method 
public List<IMethodInstance> intercept(List<IMethodInstance> methodInstances, 
ITestContext context)
which is called directly from org.testng.TestRunner, which give param 
List<IMethodInstance> methodInstances depending on dependsOnMethods param set 
to @Test annotation as well.

This behavior should be ok, since methods which are not depending on another 
else method should be executed first.
But what seems worse is that when run this again - for method anotated by @Test 
with param dependsOnMethod, then list of methods which going to be executed is 
empty - do no test method called.

And in case when all methods except one depends on another method, different 
exception is result of run testsuite:
Running TestSuite
org.apache.maven.surefire.booter.SurefireExecutionException: null; nested 
exception is java.lang.NullPointerException: null
java.lang.NullPointerException
        at 
org.richfaces.tests.metamer.ftest.MetamerTestInfo.getConfigurationInfo(MetamerTestInfo.java:50)
        at 
org.richfaces.tests.metamer.ftest.MetamerTestInfo.getConfigurationInfoInParenthesses(MetamerTestInfo.java:77)
        at 
org.richfaces.tests.metamer.ftest.MetamerSeleniumLoggingTestListener.getMessage(MetamerSeleniumLoggingTestListener.java:35)
        at 
org.jboss.test.selenium.listener.SeleniumLoggingTestListener.logStatus(SeleniumLoggingTestListener.java:82)
        at 
org.jboss.test.selenium.listener.SeleniumLoggingTestListener.onTestFailure(SeleniumLoggingTestListener.java:55)
        at org.testng.internal.Invoker.runTestListeners(Invoker.java:1634)
        at org.testng.internal.Invoker.runTestListeners(Invoker.java:1618)
        at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1101)
        at 
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:137)
        at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:121)
        at org.testng.TestRunner.runWorkers(TestRunner.java:1030)
        at org.testng.TestRunner.privateRun(TestRunner.java:709)
        at org.testng.TestRunner.run(TestRunner.java:579)
        at org.testng.SuiteRunner.runTest(SuiteRunner.java:331)
        at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:326)
        at org.testng.SuiteRunner.privateRun(SuiteRunner.java:288)
        at org.testng.SuiteRunner.run(SuiteRunner.java:193)
        at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:910)
        at org.testng.TestNG.runSuitesLocally(TestNG.java:879)
        at org.testng.TestNG.run(TestNG.java:787)
        at 
org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:62)
        at 
org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:141)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
        at 
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)


So this should be issue related to TestNG itself (current version 5.12.1), 
tried 5.13, but the same behavior.


There is stack trace:
java.lang.IllegalStateException: can't find more configured methods
        at 
org.richfaces.tests.metamer.ftest.MatrixConfigurator.configureMethod(MatrixConfigurator.java:150)
        at 
org.richfaces.tests.metamer.ftest.MatrixConfigurator.beforeInvocation(MatrixConfigurator.java:101)
        at 
org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:62)
        at 
org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:141)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
        at 
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
        at 
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
... Removed 22 stack frames

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
richfaces-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/richfaces-issues

Reply via email to