【发布时间】:2020-12-05 22:42:54
【问题描述】:
我正在使用机器人框架来测试 REST API,因此我必须创建许多临时资源(测试用户或任何其他资源)。这些是在关键字中抽象出来的,但我需要在每次测试后清理它们。但是我不想担心在每个测试中明确地清理它,因为它需要我们的测试用例在不同的抽象级别上“播放”。
最好在测试用例完成后运行关键字拆解,而不是在关键字完成后立即运行。
我做了一些研究,但还没有找到解决问题的好方法。
是否有任何解决方案可以在测试用例结束时清理在关键字中创建的资源,而无需在测试用例中明确执行?
这里有一个代码示例来说明这种情况:
helper.robot
*** Keywords ***
a user exists
create a user
Delete user
actually remove the user
test.robot 资源助手.robot
*** Test Cases ***
test user can login
Given a user exists
When user login
Then it succeeds
[Teardown] Delete user
我想要的是将拆解移出测试用例,以其他方式在每个测试用例之后删除用户,但不指定是否在每个测试用例中。我不想在设置级别配置精确的拆解,因为我们并不总是对所有测试用例使用相同的资源。
【问题讨论】:
-
那么你的问题到底是什么?你确实提到了拆解,所以你显然很熟悉这个概念;您想知道 - 它是如何在 RobotFramework 中使用的?或者在哪里设置它,在单独的测试或套件声明中的毯子上?或者它应该如何包含您的所有资源? :) 很难推断,到目前为止你所说的是一个陈述,而不是一个真正的问题:)
-
我正在寻找解决问题的解决方案,然后我尝试了建议的解决方案。我想要的是一种清理在关键字内部创建的资源的方法,从而在测试用例中抽象出来,而不必从测试用例级别管理这种清理。拆解解决方案不起作用,因为它要么运行到早期(如果在关键字中)或在错误的抽象级别(在测试用例中)
-
teardown 在每次测试后或每个套件后执行。不是在每个关键字之后。您面临的问题是什么?
-
@PDHide 这个例子更清楚了吗?
-
让我再次尝试一下我对您的问题的理解-阅读 cmets,我认为您尝试完成的是-定义了一次的通用拆卸/清理,它将仅删除在具体情况(不是其他情况,不是在这里创建,但可能在其他情况下)?
标签: robotframework