Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Karate 您可以将通配符与标记一起使用以获取所有匹配的标记吗_Karate - Fatal编程技术网

Karate 您可以将通配符与标记一起使用以获取所有匹配的标记吗

Karate 您可以将通配符与标记一起使用以获取所有匹配的标记吗,karate,Karate,我想知道您是否可以使用带有标记的通配符来获取与特定模式匹配的所有标记场景/功能 例如,在我的许多功能文件中,我在许多场景中使用了17个独特的标记。模式是“@jira=CIS-”,后跟4个数字,如@jira=CIS-1234和@jira=CIS-5678 我希望我能使用一个通配符或者其他能为我找到所有匹配项的东西 当我运行我的所有功能/方案时,我希望能够将它们从运行中排除。 我尝试了以下方法: --标签~@jira --标签~@jira* --标签~@jira=* --标签~@jira= 不幸的是

我想知道您是否可以使用带有标记的通配符来获取与特定模式匹配的所有标记场景/功能

例如,在我的许多功能文件中,我在许多场景中使用了17个独特的标记。模式是“@jira=CIS-”,后跟4个数字,如@jira=CIS-1234和@jira=CIS-5678

我希望我能使用一个通配符或者其他能为我找到所有匹配项的东西

当我运行我的所有功能/方案时,我希望能够将它们从运行中排除。 我尝试了以下方法:

--标签~@jira

--标签~@jira*

--标签~@jira=*

--标签~@jira=

不幸的是,没有人给我想要的结果。我只有在使用确切的标记时才能排除它们,例如~@jira=CIS-1234。将17个不同标记中的每一个添加到命令行不是一个好的解决方案。这些标记可以经常更改,添加新的标记,删除旧的标记,此外,这将导致一个真正的长命令

有人有什么想法吗


谢谢

是的。首先阅读此内容-有一种未记录的表达式语言(基于JS),用于基于
@key=val1,val2
表单的高级标记选择:

因此,您应该能够做到这一点:

valuesFor('@jira').isPresent
甚至(这里
s
将是一个字符串,如果您知道如何操作,您甚至可以在其上执行JS正则表达式):


很高兴得到您的确认,然后此线程本身可以帮助其他人,我们可以在某个时候将其添加到文档中。

对不起,我应该更具体一些,我使用maven和Bambor运行命令行,如“clean test-Dthreads=1-Dkarate.env=myenv”-Dkarate.options=“--tags~@ignore--tags~jira classpath:features”“。此示例通过代码显示。这不是我想要的,我希望能够在命令行上实现这一点。或者这一特征不存在?我还没有升级到1.0,我现在使用的是0.9.2。@CoreySnow您可以使用该文本代替您使用
~@foo
的位置,请尝试一下。是的,它是丑陋的,它是实际的JS代码,但它应该工作它的工作,以及部分。我如何将它组合为~@ignore和~@jira?我尝试了一些组合,但没有产生我需要的结果。我尝试了“-Dkarate.options=--tags~@ignore--tags!valuesFor('@jira')。isPresent classpath:features”。好像是——标签!(“@ignore”)的值。isPresent!(“@jira”)的值也不起作用。@CoreySnow您不能混合使用“旧”和“新”符号。所以试试:
not('@ignore')&&!(“@jira”)的值。isPresent
-如果这不起作用,我放弃:)请贡献代码t可惜也不起作用。它没有用@ignore运行任何东西,但它仍然用@jira=CIS-1234运行那些,这很奇怪。这可能是因为我们在ParallelTest.java中硬编码了@KarateOptions(tags={“~@ignore”})?
valuesFor('@jira').isEach(s => s.startsWith('CIS-'))