【问题标题】:Robotframework: Suite variable not found in 2nd test caseRobotframework:在第二个测试用例中找不到套件变量
【发布时间】:2019-09-03 09:38:25
【问题描述】:

您好,有人知道为什么我不能引用 TC1 中定义的套件变量,然后在一个套件中引用它 TC2 我收到错误:找不到变量 运行两个测试都可以,但是运行 tc1 然后 tc2 会产生这个错误 Python 2.7.13 骑行:1.7.3.1 非常感谢 TC1 TC2

【问题讨论】:

  • 添加一个示例代码,没有它问题就太模糊了。您如何使用哪个关键字在 TC1 中设置变量?默认变量范围仅是当前情况。
  • 问题肯定出在你的代码中。这是经过彻底测试的功能或机器人。我们无法解决这个问题,除非你能告诉我们一个重现问题的minimal reproducible example
  • @TodorMinakov,感谢您的评论,我已经用 TC1 和 TC2 的代码 sn-ps 更新了我的问题
  • @BryanOakley ,我已经添加了两种情况的示例图片,我想知道套件变量存储了多长时间?是在 TC 再次运行之前记住它,还是只有在 TC1 和 TC2 顺序运行时这种情况才有效。谢谢
  • 请勿张贴代码图片。至于套件变量存储多长时间,它会在套件的生命周期内存储。

标签: variables robotframework suite


【解决方案1】:

尝试下一个简单的代码并说明它是否有效,这里的重点是您通过Set Suite Variable 定义套件变量的位置,它应该在第一个测试用例或其中一个设置中(测试/套件设置):

*** Settings ***
Library           Collections

*** Test Cases ***
TestCase1
    Log to Console    ${EMPTY}
    Set Suite Variable    ${suite_variable}    case1
    Log To Console    I'm in case 1: ${suite_variable}

TestCase2
    Log to Console    ${EMPTY}
    ${variables}    Get Variables
    Dictionary Should Contain Key    ${variables}    \${suite_variable}
    Log To Console    I'm in case 2: ${suite_variable}

【讨论】:

  • 我试过了,运行 TestCase1 并在 TestCase2 正常工作之后立即运行,但后来我运行了 TC3,然后又运行了 TestCase2,它失败了:|失败 |字典不包含键“${suite_variable}”。套件变量存储或保留多长时间?
  • 直到套件完成。如果您运行完整套件,它应该可以工作。如果您通过pybot 命令分别运行每个测试用例,它将不起作用。我建议创建没有任何操作的简单脚本以查看它是否有效并在此处发布。
猜你喜欢
  • 2014-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-05
  • 1970-01-01
  • 2013-06-15
  • 1970-01-01
  • 2020-05-21
相关资源
最近更新 更多