首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每次测试后的资源清理

每次测试后的资源清理
EN

Stack Overflow用户
提问于 2020-12-05 05:14:00
回答 1查看 248关注 0票数 0

我正在使用robot框架测试REST API,因此我必须创建许多临时资源(测试用户或任何其他资源)。这些都是在关键字中抽象的,但我需要在每次测试后清理它们。但我不想担心在每个测试中显式地清理它,因为它需要我们的测试用例在不同的抽象级别上“播放”。

最好是在测试用例完成后运行关键字teardown,而不是直接在关键字完成之后运行。

我做了一些研究,但还没有找到一个好的方法来处理这个问题。

有没有什么解决方案可以清理在测试用例末尾的关键字中创建的资源,而不是在测试用例中显式地执行该操作?

下面是一个代码示例来说明这种情况:

helper.robot

代码语言:javascript
复制
*** Keywords ***
    a user exists
       create a user

    Delete user
       actually remove the user

test.robot资源helper.robot

代码语言:javascript
复制
*** Test Cases ***
test user can login
    Given a user exists
    When user login
    Then it succeeds

    [Teardown]    Delete user

我想要的是将teardown移出测试用例,以便在每个测试用例之后删除用户,但不指定是否在每个测试用例中删除用户。我不想在设置级别配置确切的teardown,因为我们并不总是对所有测试用例使用相同的资源。

EN

回答 1

Stack Overflow用户

发布于 2020-12-05 22:42:55

https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#test-setup-and-teardown

在编写本文时,唯一的特殊标记是

:exit,它会在优雅地停止测试执行时自动添加到测试中,以及robot:no- dry - run,它可以用来禁用dry运行模式。将来可能会添加更多的用法。2.2.6测试设置和拆卸

Robot Framework具有与许多其他测试自动化框架类似的测试设置和拆卸功能。简而言之,测试设置是在测试用例之前执行的,而测试拆卸是在测试用例之后执行的。在Robot Framework中,setup和teardown只是带有可能参数的普通关键字。

Setup和teardown总是一个关键字。如果他们需要处理多个单独的任务,则可以为此创建更高级别的用户关键字。另一种解决方案是使用BuiltIn关键字Run关键字执行多个关键字。

测试拆卸有两个方面的特殊之处。首先,它还会在测试用例失败时执行,因此它可以用于清理活动,而不管测试用例的状态如何。此外,teardown中的所有关键字也会执行,即使其中一个失败。这个在失败时继续的功能也可以与normal关键字一起使用,但inside teardowns默认情况下是打开的。

为测试用例文件中的测试用例指定设置或拆卸的最简单方法是使用设置表中的测试设置和测试拆卸设置。单独的测试用例也可以有自己的设置或拆卸。它们使用测试用例表格中的Setup或Teardown设置进行定义,并覆盖可能的test Setup和Test Teardown设置。在Setup或teardown设置后没有关键字意味着没有setup或Teardown。也可以使用值NONE来指示测试没有设置/拆卸。

代码语言:javascript
复制
*** Settings ***
Test Setup       Open Application    App A
Test Teardown    Close Application

*** Test Cases ***
Default values
    [Documentation]    Setup and teardown from setting table
    Do Something

Overridden setup
    [Documentation]    Own setup, teardown from setting table
    [Setup]    Open Application    App B
    Do Something

No teardown
    [Documentation]    Default setup, no teardown at all
    Do Something
    [Teardown]

No teardown 2
    [Documentation]    Setup and teardown can be disabled also with special value NONE
    Do Something
    [Teardown]    NONE

Using variables
    [Documentation]    Setup and teardown specified using variables
    [Setup]    ${SETUP}
    Do Something
    [Teardown]    ${TEARDOWN}

如果您在设置中提供它,它将按您所需的方式工作,而不必为每个测试用例指定

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65150823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档