在__init __。txt中定义的关键字不适用于测试设置和测试拆解

时间:2018-04-10 13:12:05

标签: python robotframework

我想在Robot Framework测试套件和子测试套件中尝试用户定义的关键字作为测试用例的设置和拆卸。我有以下结构,

    ROOT
    |
    |- tests
        |- __init__.txt
        |- sample.robot

__init__.txt包含以下文字


    *** Settings ***
    Test Setup    My Keyword1
    Test Teardown    My Keyword2

    *** Keywords ***
    My Keyword1
        Log    Inside My Keyword1

    My Keyword2
        Log    Inside My Keyword2

Sample.robot包含以下代码


    *** Test Cases ***
    My Testcase1
        Log    Inside My Testcase1

正在运行robot tests会出现以下错误,


    ==============================================================================
    Tests
    ==============================================================================
    Tests.Sample
    ==============================================================================
    My Testcase1                                                          | FAIL |
    Setup failed:
    No keyword with name 'My Keyword1' found.

    Also teardown failed:
    No keyword with name 'My Keyword2' found.
    ------------------------------------------------------------------------------
    Tests.Sample                                                          | FAIL |
    1 critical test, 0 passed, 1 failed
    1 test total, 0 passed, 1 failed
    ==============================================================================
    Tests                                                                 | FAIL |
    1 critical test, 0 passed, 1 failed
    1 test total, 0 passed, 1 failed
    ==============================================================================

请告诉我上述结构中缺少什么?我需要一种机制,允许我执行用户关键字作为默认设置或拆卸。如果需要,单个测试用例也可以覆盖设置/拆卸。

2 个答案:

答案 0 :(得分:1)

问题是My Keyword1My Keyword2__init__.txt文件的本地文件,不能在其他测试用例中使用。您需要将它们移动到资源文件中,然后将该文件导入到测试中。

来自initialization files上的机器人框架用户指南部分:

  

在初始化文件中创建或导入的变量和关键字在较低级别的测试套件中不可用。如果需要共享变量或关键字,可以将它们放入可以通过初始化和测试用例文件导入的资源文件中。

答案 1 :(得分:0)

不要使用"测试设置"和"测试拆解"在__init__文件的“设置”部分中。而是使用" 套件设置"和" 套件拆解"。这是因为您将为此文件夹中的所有测试套件执行此设置。

此外,最好将__init__文件的扩展名更改为.robot而不是.txt。