【发布时间】:2017-01-25 15:10:35
【问题描述】:
我已经为此苦苦思考了大约一周,但不知道为什么会发生这种情况。
我正在使用最新的 Selenium 和 TestNG 的 mavenized java 1.8 项目中使用最新的稳定版本的 testrail-api-java (1.0.1)。
我正在尝试使用以下代码使用测试结果更新测试运行:
List<ResultField> customResultField = testRail.resultFields().list().execute();
testRail.results().addForCase(testRun.getId(), testId, new Result().setStatusId(testStatus), customResultField).execute();
更新失败并出现 RuntimeException:
com.fasterxml.jackson.databind.JsonMappingException: 失败 getValue() 方法 com.codepine.api.testrail.model.Result#getCustomFields(0 params): null (通过参考链: com.codepine.api.testrail.model.Result["[anySetter]"])
我调试了代码,发现这个异常发生并在尝试更新运行过程中被捕获:
方法抛出“java.lang.NoSuchMethodError”异常。无法评估 com.codepine.api.testrail.model.Result.toString()
这似乎是覆盖基本 java util toString() 方法的问题。
在调试过程中,我检查了一些明显的问题,例如空变量、范围问题等,但无法真正确定发生这种情况的原因。
我的 Java 知识充其量只是新手,因为我是自学成才的,所以如果这很明显而不是这个库的实际问题,我深表歉意。
任何帮助都将不胜感激,因为我已经尝试了我能想到的一切。
更新:我更新了我的 pom 以引用版本 1.0.2,以防我弄错了哪个版本是稳定的并且仍然发生异常。
更新:Java 开发人员认为这可能是 Lombok 问题,并建议将 Lombok 添加到我的类路径中,但无论如何仍然会发生异常。
我已联系 Git 社区以获取我正在使用的库,但目前尚未收到回复。 在项目的 Github 页面上发布问题(重复信息)的链接:https://github.com/codepine/testrail-api-java-client/issues/14
【问题讨论】:
-
'java.lang.NoSuchMethodError'和toString()的组合经常会导致代理对象在调试期间没有处理 toString() 的印象。 -
所以你基本上是说我认为被捕获的错误实际上只是调试的副产品?那我应该关注另一个例外吗? com.fasterxml.jackson.databind.JsonMappingException:无法使用方法 com.codepine.api.testrail.model.Result#getCustomFields(0 params) 获取值():null(通过参考链:com.codepine.api.testrail.model .Result["[anySetter]"])
标签: java maven selenium testrail