将测试编号从机器人框架传递到python



我有一个机器人测试台,正在运行pybot。机器人/pybot调用python函数。我可以将测试号传递给我的 python 函数吗?

我意识到我可以通过在机器人测试表中附加一个数字来做到这一点,但这样做很痛苦,因为它是一个巨大的格式化表。还有别的办法吗?

测试

就像(实际测试表的较短形式,太大而无法粘贴)

=================================================
Test Case           Action          Arguments
=================================================
Test connection   mytest.setup      ${Bucket}
Verify files      mytest.verify     ${filename}
Search logs       mytest.searchlog  ${string_to_search}
==================================================

因此,当我在python中调用mytest.searchlog()(mytest是我的python文件)时,我如何告诉它是第三个测试用例?

我正在使用pybot运行它

pybot --variable Bucket:mybucket .....  testfile.rst
在我看来

,您可以使用重置每个测试用例并将其值存储在测试用例变量范围内的计数器来实现这一点。

使用此处找到的数据驱动示例,我创建了以下示例,其中测试用例添加了[setup]部分,并且每次为每个数据记录调用的关键字都有一个[teardown]部分。虽然它也可以在关键字内部处理。

*** Test Cases ***
Calculation error     [Template]    Calculation should fail
                      [setup]    Set Test Variable     ${counter}    0
                      kekkonen      Invalid button 'k'.
                      ${EMPTY}      Invalid expression.
                      1 / 0         Division by zero.
*** Keywords ***
Calculation should fail
    [Arguments]    ${expression}    ${expected}
    ${error} =    Should cause error    C${expression}=
    Should be equal    ${expected}    ${error}    # Using `BuiltIn` keyword
    [teardown]    Counter
Counter
    ${countr}=       Get Variable Value   ${counter}
    ${countr}=     evaluate    ${countr}+1
    Set Test Variable    ${counter}    ${countr}

变量可以在测试用例的范围内调用,这也包括在给定测试用例中调用的关键字。

最新更新