我有自己的测试库函数run_test_routine()
我在设置部分,测试部分和拆卸部分中将我的RF套件中的相同功能“运行测试例程”称为RF功能,如下所示
my RF test case
[Setup] Run Test Routine setup_input
Run Test Routine test_input
[Teardown] Run Test Routine teardown_input
现在,当在RF python库中调用此run_test_routine()时,如何知道它的调用位置? 即从安装部分,测试部分或拆解部分调用它?
我想强调一点,这是RF库的python代码中所必需的,而不是基于文本的RF套件
答案 0 :(得分:1)
我不相信有一种可靠的方法可以确定调用关键字的上下文。我唯一能想到的是检查堆栈以查看是否调用了内部例程_run_setup
或_run_teardown
。这可能很容易在未来版本的机器人中破坏,因为它取决于一些私有内部函数的名称。
如果你真的想这样做,它可能看起来像这样:
import traceback
def _is_setup():
for tb in reversed(traceback.extract_stack()):
if (tb[2] == "_run_setup"):
return True
return False
def _is_teardown():
for tb in reversed(traceback.extract_stack()):
if (tb[2] == "_run_teardown"):
return True
return False
我认为更好的解决方案是拥有三个关键字。保留您拥有的那个,然后再创建两个名为Run Setup Test Routine
和Run Teardown Test Routine
的人。除了你需要做的任何特殊处理之外,他们都可以调用Run Test Routine
函数。或者,他们可以简单地将一个额外的参数传递给Run Test Routine
来告诉它上下文。