首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QF-测试将错误的属性添加到被测试的系统中

QF-测试将错误的属性添加到被测试的系统中
EN

Stack Overflow用户
提问于 2018-10-26 09:33:49
回答 2查看 185关注 0票数 1

我目前正在尝试测试Eclipse应用程序的UI。当手动执行时,应用程序将很好地启动,并且可以正确使用。然而,当QF启动应用程序时,我在一个3pp模块中得到一个ClassCastException

代码语言:javascript
复制
java.lang.ClassCastException: java.io.File cannot be cast to java.lang.String
at com.solarmetric.conf.ConfigurationImpl.fromProperties(ConfigurationImpl.java:560)
at com.solarmetric.conf.ConfigurationImpl.loadDefaults(ConfigurationImpl.java:186)

在分析了3pp库的代码之后,我发现当试图将系统的属性值转换为String时会出现异常。这不应该是一个问题,因为所有的属性值都应该是String (参见此answer)。然而,QF添加了3个属性,它们的值为File (java.io.File)对象.更确切地说:

代码语言:javascript
复制
jython.home = C:\Program Files\qfs\qftest\qftest-4.2.0\jython
groovy.home = C:\Program Files\qfs\qftest\qftest-4.2.0\groovy
javascript.home = C:\Program Files\qfs\qftest\qftest-4.2.0\javascript

我想删除那些错误的属性值。我已经尝试将它们手动定义为success命令行调用的参数,但没有成功。

如果能提供一些帮助,我们将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-28 08:44:04

QF的这种行为是用QF-Test4.2.1修正的(2018年2月26日发布),参见N1D715

代码语言:javascript
复制
Bug fixed:

In a few cases a broken system property set by QF-Test could interfere with SUT startup.

因此,答案是简单地更新你的QF-测试!

票数 2
EN

Stack Overflow用户

发布于 2018-10-26 10:37:08

不幸的是,我不知道QF-测试的修复方法。如果可能的话,我建议在使用之前纠正这些属性。

代码语言:javascript
复制
    Properties sysProps = System.getProperties();

    Properties copyProps = new Properties();
    synchronized (sysProps) {
        copyProps.putAll(sysProps);
    }

    Set<Entry<Object, Object>> entrySet = copyProps.entrySet();
    for (Entry<Object, Object> entry : entrySet) {
        if (!(entry.getKey() instanceof String) || !(entry.getValue() instanceof String)) {
            sysProps.remove(entry.getKey());
            sysProps.put(String.valueOf(entry.getKey()), String.valueOf(entry.getValue()));
        }
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53005725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档