当与 squishtest 模块一起使用时,Squish 测试函数总是通过

Squish test functions always pass when used with squishtest module

我们在 Windows 10 和 Python 3.8.7 上使用 Qt 6.6.2 的 Squish,运行 我们的测试使用 squishtest 模块和 Robot Framework 4.0。 1.

我们在使用 Squish API 提供的 test 函数时遇到问题,其中使用此类调用(例如 squishtest.test.imagePresent)完成的任何验证都会通过。问题本身非常简单,可以查明尽管验证失败,但函数调用本身在没有引发异常的情况下通过了这一事实。这也可以从 squishr​​unner 提供的报告中得到验证,其中我们对传递的执行有 <scriptedVerificationResult type="FAIL" time="--">

问题是,我们能否以任何方式将实际验证结果传递给机器人,以便我们相应地通过测试?最好是实时而不是事后解析报告。

在 Squish 中这工作得很好

def main():
    startApplication("AUT")
    snooze(2)
    test.imagePresent("image.png", {"tolerant": True, "threshold": 85}, 
    waitForObjectExists(names.sceneContainer_GraphWidget))

但是对于 Robot,这总是过去的

# In testSuite.robot

*** Settings ***
Library     MySquishLib

*** Test Cases ***
Test Image
    Start AUT
    Verify Image    image.png    {"tolerant": True, "threshold": 85}    names.sceneContainer_GraphWidget
# In MySquishLib.py

import squishtest
import names

def start_aut():
    squishtest.startApplication("AUT")

def verify_image(imageFile, imageParams, imageArea):
    squishtest.test.imagePresent(imageFile, imageParams, imageArea)

test 函数不应在执行期间引发异常,以便即使单个 VP 失败也能继续测试。然而,该函数确实 return 一个布尔值,正如预期的那样。通过使用

def verify_image(imageFile, imageParams, imageArea):
    if not squishtest.test.imagePresent(imageFile, imageParams, imageArea):
        raise Exception("Image was not found")

我能够顺利通过机器人测试。