微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

QAF:java.lang.IllegalArgumentException:必须定义添加操作的键

如何解决QAF:java.lang.IllegalArgumentException:必须定义添加操作的键

环境: 质量保证 爪哇:8 测试NG:6.10 鸦片:1.18.0-1 常春藤 常春藤 BDDTestFactory Android设备:OS 9

尝试在Android设备上运行任何方案时,它抛出以下异常。它可以在iOS设备上正常运行,甚至在以前的Android上也可以正常运行。

<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>

例外:

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)

解决方法

这很可能是因为没有密钥的属性。逐行检查每个属性文件,并删除不必要的行。有时,它会发现在结帐合并冲突文件后,其中包含需要清除的冲突信息。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。