【发布时间】:2015-03-08 00:47:49
【问题描述】:
是否可以要求在执行当前测试用例之前执行特定的测试用例?
我的测试用例被组织在几个文件夹中,一个测试可能需要执行另一个文件夹中的另一个测试(见下图)。
有什么建议吗?
【问题讨论】:
是否可以要求在执行当前测试用例之前执行特定的测试用例?
我的测试用例被组织在几个文件夹中,一个测试可能需要执行另一个文件夹中的另一个测试(见下图)。
有什么建议吗?
【问题讨论】:
如果测试用例位于不同的文件中,除了重新组织测试之外,您无能为力。
您可以控制套件的运行顺序,也可以控制文件中测试的顺序,但无法控制文件之间的测试顺序。
最佳实践建议测试应该是独立的,而不是依赖于其他测试。在实践中这可能很困难,但至少您应该努力使测试套件彼此独立。
【讨论】:
这不是一个好的/推荐的/可能的方法。
机器人框架不支持它,这是有充分理由的。长期(甚至短期)创建这种依赖关系是不可持续的。
测试不应依赖于其他测试。主要不是来自不同套件的其他测试。如果另一个套件没有运行怎么办?
您可以通过两种方式解决此问题:
你可以定义一个名为
的文件__init__.robot
在目录中。文件中的套件设置和套件拆卸将在底层文件夹中的任何内容之前运行。
你也可以把另一个测试变成一个关键字,所以:
Test C 只调用一个关键字,使 Test C 运行并更新一个全局变量 (Test_C_already_runs)
测试 B 将使用然后发出
run if '${Test_C_already_runs}'=='true' Test_C_Keyword
无论如何,您都必须在此之前为 Test_C_already_runs 设置一个值(作为变量导入的一部分,或作为某些套件设置的一部分),以防止变量未找到错误。
【讨论】: