2

Environment: QAF Java: 8 TestNG: 6.10 Appium: 1.18.0-1 IVY ivy.xml BDDTestFactory Android Device: OS 9

On trying to run any scenario on Android device, it is throwing below exception. It works fine on iOS Device & this was working fine even on Android previously.

<dependencies>
    <dependency org="com.qmetry" name="qaf" rev="3.0.0-RC3"/>
    <dependency org="com.qmetry" name="qaf-support" rev="3.0.0-RC3"/>
    <dependency org="com.qmetry" name="qaf-support-ws" rev="3.0.0-RC3"/>
    <dependency org="org.aspectj" name="aspectjtools" rev="1.9.5"/>
    <dependency org="org.aspectj" name="aspectjweaver" rev="1.9.5" />
    <dependency org="ant-contrib" name="ant-contrib" rev="1.0b3"/>
    <dependency org="io.appium" name="java-client" rev="7.3.0"/>
    <dependency org="org.seleniumhq.selenium" name="selenium-java" rev="3.141.59" force="true"/>
</dependencies>

Exception:

java.lang.IllegalArgumentException: Key for add operation must be defined!
    at org.apache.commons.configuration.tree.DefaultExpressionEngine.prepareAdd(DefaultExpressionEngine.java:419)
    at org.apache.commons.configuration.HierarchicalConfiguration.addPropertyDirect(HierarchicalConfiguration.java:383)
    at org.apache.commons.configuration.AbstractHierarchicalFileConfiguration.addPropertyDirect(AbstractHierarchicalFileConfiguration.java:146)
    at com.qmetry.qaf.automation.util.PropertyUtil.addPropertyDirect(PropertyUtil.java:107)
    at org.apache.commons.configuration.AbstractConfiguration.addPropertyValues(AbstractConfiguration.java:422)
    at org.apache.commons.configuration.AbstractConfiguration.copy(AbstractConfiguration.java:1241)
    at com.qmetry.qaf.automation.util.PropertyUtil.loadFile(PropertyUtil.java:215)
    at com.qmetry.qaf.automation.util.PropertyUtil.load(PropertyUtil.java:202)
    at com.qmetry.qaf.automation.core.ConfigurationManager.addBundle(ConfigurationManager.java:193)
    at com.qmetry.qaf.automation.core.ConfigurationManager.addBundle(ConfigurationManager.java:160)
    at com.qmetry.qaf.automation.core.ConfigurationManager$PropertyConfigurationListener.configurationChanged(ConfigurationManager.java:418)
    at org.apache.commons.configuration.event.EventSource.fireEvent(EventSource.java:249)
    at org.apache.commons.configuration.AbstractConfiguration.copy(AbstractConfiguration.java:1247)
    at com.qmetry.qaf.automation.util.PropertyUtil.addAll(PropertyUtil.java:180)
    at com.qmetry.qaf.automation.core.ConfigurationManager.addAll(ConfigurationManager.java:285)
    at com.qmetry.qaf.automation.testng.TestNGTestCase.setupTest(TestNGTestCase.java:80)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:104)
    at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:515)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:217)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:144)
    at org.testng.TestRunner.beforeRun(TestRunner.java:656)
    at org.testng.TestRunner.run(TestRunner.java:624)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:387)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:382)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340)
    at org.testng.SuiteRunner.run(SuiteRunner.java:289)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1293)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1218)
    at org.testng.TestNG.runSuites(TestNG.java:1133)
    at org.testng.TestNG.run(TestNG.java:1104)
    at com.intellij.rt.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:66)
    at com.intellij.rt.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:109)
Federico klez Culloca
  • 26,308
  • 17
  • 56
  • 95
Vishwathma
  • 91
  • 1
  • 10

1 Answers1

3

This is most probably because of property without key. Check your each property files line by line and remove unnecessary lines. Sometimes it observed that after checkout with merge conflict file containing conflict information that needs to be cleaned up.

user861594
  • 5,733
  • 3
  • 29
  • 45
  • Thanks! The issue was, there were some special characters(conflict information) in android.locator.properties. This got added because of merge conflicts. Those special characters were removed & after that this issue got resolved. – Vishwathma Aug 26 '20 at 16:34