机器人框架测试流程

Robot Framework Test Flow

是否可以在执行当前测试用例之前要求执行特定测试用例?

我的测试用例组织在几个文件夹中,一个测试可能需要执行另一个文件夹中的另一个测试(见下图)。

有什么建议吗?

如果测试用例在不同的文件中,除了重新组织测试之外,您无能为力。

您可以控制套件 运行 的顺序,您可以控制文件内测试的顺序,但无法控制文件之间的测试顺序。

最佳实践建议测试应该是独立的,而不是依赖于其他测试。在实践中这可能很困难,但至少您应该努力使测试套件彼此独立。

这不是一个好的/推荐的/可能的方式。

机器人框架不支持它,这是有充分理由的。从长期(甚至短期)来看,建立这种依赖关系是不可持续的。

测试不应依赖于其他测试。主要不是来自不同套件的其他测试。如果另一个套件不是 运行 怎么办?

您可以通过两种方式解决此问题:

您可以定义一个名为

的文件
__init__.robot 

在目录中。文件中的套件设置和套件拆解将 运行 在基础文件夹中的任何内容之前。

你也可以把其他测试变成关键词这样:

测试C简单的调用一个关键字使测试C运行同时更新一个全局变量(Test_C_already_runs)

测试 B 会使用 then issue

run if  '${Test_C_already_runs}'=='true'  Test_C_Keyword

您必须在此之前将值设置为 Test_C_already_runs(作为变量导入的一部分,或作为某些 suite_setup 的一部分)以防止变量未找到错误。