我使用Python和Squish的组合为Qt在Qt GUI上编写测试,但是我注意到当我从我拥有的套件中复制和粘贴测试时,并将它们移动到另一个套件或计算机中使用Squish该文件将运行,但当它运行时,它会看到一个对象名称,它不会识别它并引发异常。大多数时候我使用选择器工具获取对象名称并将其放在旧对象名称所在的位置并且它可以工作(我可能会添加对象名称没有改变我真的在复制和粘贴一个字符串在相同的字符串上)。我一定做错了什么。有没有人看过这个或者有办法解决这个问题所以我不必重新录制?
答案 0 :(得分:3)
...但是当我从套件中复制和粘贴测试时我注意到了 我已经将它们移动到另一个套件或计算机上并使用Squish文件 将运行,但当它运行时,它会看到一个对象名称,它不会 认识到它并引发异常......
对于您的测试脚本,Squish会创建您提到的此套件文件夹。 在此文件夹中,除了 test.py 文件外,还有 object.map 文件(其中squish存储您在测试中使用的所有对象)。 此外,除了这2个文件,您还有 suite.conf 文件。
您可以在另一台计算机上移动套件文件夹,然后在SquishIDE中打开它,而不是复制/粘贴您的测试脚本文件。或者与测试脚本一起,复制 object.map 文件。
答案 1 :(得分:0)
@EugenG是对的,对象图包含从符号名称(:OK_Button
)到实名({type='Button' text='OK'}
)的映射,因此您需要将相应的条目复制到新的对象图中测试套件,或简单地"教授"他们在执行测试脚本时使用Squish的Object Name Found处理。为了加快速度,Squish版本6.4+将支持减少waitForObject()&的默认超时。通过testSettings.waitForObjectTimeout。
@EugenG对share an object map between test suites的可能性也是正确的。