python - 从侦听器为特定套件对象设置套件变量
问题描述
我正在运行中创建动态测试套件,如下所示。它工作正常。但我不知道如何为动态创建的套件对象设置套件变量。BuiltIn().set_suite_variable("${FOO}", "Bar")
似乎也不适用于当前套件。我不需要为当前套件设置变量,而是为特定的子套件对象设置变量。请帮忙。
from robot.libraries.BuiltIn import BuiltIn
class DynamicTestLibrary(object):
ROBOT_LISTENER_API_VERSION = 3
ROBOT_LIBRARY_SCOPE = 'GLOBAL'
ROBOT_LIBRARY_VERSION = 0.1
def __init__(self):
self.ROBOT_LIBRARY_LISTENER = self
self.top_suite = None
def _start_suite(self, suite, result):
self.top_suite = suite
self.children = list(suite.suites)
def add_test_cases(self, *versions):
suitesAll = []
for version in versions:
for suite2 in self.children:
suiteCopy = suite2.copy()
print(version)
print(suiteCopy.name)
suiteCopy.name = suiteCopy.name + version
BuiltIn().set_suite_variable("${FOO}", "Bar") #should be set for suiteCopy
suitesAll.append(suiteCopy)
self.top_suite.suites = suitesAll
globals()[__name__] = DynamicTestLibrary
解决方案
我找到了解决方案。
suiteCopy.keywords.create('Set Suite Variable', args=['${RAFOO}', 'activated','children=true'], type='setup')
对于版本 > 4.0
suiteCopy.setup.config(name='Set Suite Variable', args=('${RAFOO}', 'activated','children=true'))
推荐阅读
- azure-cosmosdb - cosmosdb 上的唯一稀疏索引不起作用
- html - 根据内容/标签优化按钮宽度
- powershell - 将字符串拆分为两个数组
- svg - 如何给三角形的两条边上色?
- jquery - 反应(cra):当尝试在 fullcalendar 的“eventRender”中使用 jQuery 时,我收到错误:$el.popover 不是函数
- erlang - 以记录为键的映射 - 如何检查 Erlang 中是否存在键
- sql-server - 如何引用名为:“更新”的特殊 SQL Server 触发器表错误:无效的对象名称“更新”。?
- docker - 有什么不同。和 ./ 在 RUN
- android - 无法应用插件 [class 'com.google.gms.googleservices.GoogleServicesPlugin'](对于输入字符串:“+”)
- c++ - 数独求解器(无法获得多个解决方案)