【问题标题】:__init__.robot file in Robot FrameworkRobot Framework 中的 __init__.robot 文件
【发布时间】:2021-10-18 17:56:16
【问题描述】:

我有一个代码可以分配一个全局变量,所以所有测试都可以使用这个全局变量。我在测试文件夹和设置部分创建了一个文件__init__.robot

*** Settings ***
Test Setup   Assign a global variable 

*** keywords ***
Assign a global variable 
  set a global variable ${test} Hello

现在,当我运行其他测试时,似乎该文件在任何测试之前都没有运行 它没有找到 ${test}

我的问题:任何人都知道如何使用 init.robot 文件,该文件将在所有测试之前运行?

谢谢

【问题讨论】:

  • 你是如何运行机器人的? __init__.robot 文件只有在你在命令行中将文件夹名称传递给机器人时才会运行。
  • 我看了我应该把它放在tests文件夹中,因为它是init.robot语法,它会在所有测试之前自动运行?

标签: python robotframework


【解决方案1】:

首先你的Set Variable 语法有问题。改用这个

Assign a Global Variable
    Set Global Variable    ${test}    Hello

当然不区分大小写,但正如您所见,没有额外的 a 并且关键字和参数之间以及每个给定参数之间必须至少两个空格.然而,这会抛出一个错误,所以如果你没有遇到这个问题,那么你也有其他问题。

由于您没有提供有关您如何实际执行测试套件的信息,因此无法给出简单的答案。但是,为了首先执行__init__.robot,您需要正确地满足两个先决条件。

  1. __init__.robot 必须位于同一文件夹中,或者位于实际测试套件文件所在目录之上的文件夹中。考虑一个粗略的层次结构:
| --TestSuite_0.robot
| --TestSuites
    |
    | --__init__.robot
    | --TestSuite_1.robot
    | --SomeFolder
        |
        | --TestSuite_2.robot

现在TestSuite_0.robot 根本不会使用__init__.robot 文件,但如果您满足第二个要求,则 1 和 2 都可以。

  1. 从文件夹而不是直接从测试套件执行测试,这将启用初始化文件,如果您希望限制您运行的测试或测试套件的数量,请使用-t-s 参数。

例如,您可以使用以下初始化运行套件 1 robot -s 'TestSuite_1' path\to\TestSuites

这样会首先找到__init__.robot,然后才会启动实际的测试套件。

最后,Test Setup 仅适用于每个测试。如果您希望实际拥有一个全局变量,则可能需要查看Resource Files

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-27
    • 2018-05-03
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    • 1970-01-01
    • 2020-11-23
    相关资源
    最近更新 更多