我正在构建一个程序,跟踪步骤定义涵盖的功能文件步骤。例如,我可能有一个功能步骤I should not click on the panel
。此功能步骤与步骤定义I {qualifier} click on the {place}
匹配,假设{qualifier}
映射到(should not|should)
,而{place}
映射到(panel|page)
对于与步骤定义匹配的每个特征步骤,我希望跟踪它实际匹配的步骤定义。所以我需要在I should not click on the panel
和I {qualifier} click on the {place}
之间建立一个连接
对于每个不匹配任何步骤定义的特征步骤,我将生成一个步骤定义,并将这两个步骤连接起来
现在我把每一步定义都转换成正则表达式,比如
I {qualifier} click on the {place}
将转换为(I (should not|should) click on the (panel|page))
我使用的是Python字典,其中键是转换后的正则表达式,值是原始步骤定义
当我完成每个特征步骤并试图将它们连接到匹配的步骤定义时,我的问题就出现了。我目前只是循环遍历每一个正则表达式,并尝试将其与功能步骤相匹配,类似这样的
# every feature_step gets sent through this check
for regex in all_step_definition_regex:
if re.match(regex, feature_step):
step_definition = regex_to_step_definition_map[regex]
return True, step_definition
return False, None
当必须检查每个功能步骤以查看它是否与任何单个正则表达式匹配时,这需要花费非常长的时间来运行。加速初始检查的一种方法是将每个正则表达式与一个'or'likere.match('|'.join(all_step_definition_regex), feature_step)
连接在一起,但是我无法将功能步骤与其匹配的步骤定义连接起来,而不通过所有单个正则表达式进行循环
我想知道是否有人知道如何加快这个过程
目前没有回答
相关问题 更多 >
编程相关推荐