机器人框架测试流程
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 的一部分)以防止变量未找到错误。
是否可以在执行当前测试用例之前要求执行特定测试用例?
我的测试用例组织在几个文件夹中,一个测试可能需要执行另一个文件夹中的另一个测试(见下图)。
有什么建议吗?
如果测试用例在不同的文件中,除了重新组织测试之外,您无能为力。
您可以控制套件 运行 的顺序,您可以控制文件内测试的顺序,但无法控制文件之间的测试顺序。
最佳实践建议测试应该是独立的,而不是依赖于其他测试。在实践中这可能很困难,但至少您应该努力使测试套件彼此独立。
这不是一个好的/推荐的/可能的方式。
机器人框架不支持它,这是有充分理由的。从长期(甚至短期)来看,建立这种依赖关系是不可持续的。
测试不应依赖于其他测试。主要不是来自不同套件的其他测试。如果另一个套件不是 运行 怎么办?
您可以通过两种方式解决此问题:
您可以定义一个名为
的文件__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 的一部分)以防止变量未找到错误。