0

我正在使用 Python 和 Squish for Qt 的组合在 Qt GUI 上编写测试,但是我注意到当我从我拥有的套件中复制和粘贴测试并将它们移动到另一个套件或计算机时,文件将运行,但是当它随时运行时,它会看到一个对象名称,它无法识别它并引发异常。大多数时候,我使用选取器工具获取对象名称并将其放置在旧对象名称所在的位置并且它可以工作(我可能会补充说对象名称没有改变我实际上是在复制和粘贴一个字符串完全相同的字符串)。我一定做错了什么。有没有人看到这个或有办法解决这个问题,所以我不必重新录制?

4

2 回答 2

3

...但是我注意到,当我从我拥有的套件中复制并粘贴测试并将它们移动到另一个套件或使用 Squish 的计算机时,该文件将运行,但是当它在任何时候运行时,它会看到一个对象名称,它无法识别它并抛出一个例外...

对于您的测试脚本,Squish 会创建您提到的这个套件文件夹。在这个文件夹中,除了test.py文件之外,您还有一个object.map文件(其中 squish 存储了您在测试中使用的所有对象)。此外,除了这 2 个文件之外,您还有一个suite.conf文件。

您可以将套件文件夹移动到另一台计算机上,然后在 SquishIDE 中打开它,而不是复制/粘贴您的测试脚本文件。或者与测试脚本一起,复制object.map文件。

于 2015-05-13T09:50:57.293 回答
0

@EugenG 是对的,对象映射包含从符号名称 ( :OK_Button) 到真实名称 ( {type='Button' text='OK'}) 的映射,因此您需要将相应的条目复制到新测试套件的对象映射中,或者简单地“教”它们执行测试脚本时发现 Squish 的对象名称处理。为了加快速度,Squish 6.4+ 版将支持通过 testSettings.waitForObjectTimeout 减少 waitForObject() 和 co 的默认超时。

@EugenG 关于在测试套件之间共享对象映射的可能性也是正确的。

于 2017-08-21T19:42:58.513 回答