karate - 是否可以通过同一空手道命令行上的标签包含和排除
问题描述
我们可以通过在命令行中包含以下内容来选择多个场景:-Dcucumber.options="--tags @S1,@S2,@S6"
如果我想排除@S6,我可以使用: -Dcucumber.options="--tags ~@S6"
但如果我想包含@S1、@S2 并排除@S6,所有标签都会被忽略:-Dcucumber.options="--tags @S1,@S2,~@S6"
如果我尝试使用以下选项加倍选项,所有标签也会被忽略: -Dcucumber.options="--tags @S1,@S2" -Dcucumber.options="--tags ~@S6"
是否有一种命令行方式可以在一个命令行中包含和排除?
我想这样做的原因是运行所有类型的测试,但排除使用可能暂时关闭的某些外部系统的测试。
解决方案
编辑:原来我没有完全意识到黄瓜世界中 AND 和 OR 之间的区别。这个SO 答案和这篇文章是一个很好的参考,寻找“逻辑或”和“逻辑与”:
所以要运行 S1 OR
S2 AND NOT
S3
mvn test -Dkarate.options="--tags @S1,@S2 --tags ~@S3"
使用 Java (or Runner
) API,只需对 OR 使用逗号,对 AND 使用分隔字符串:
Results results = Runner.path("classpath:com/myco/some.feature")
.tags("@S1,@S2", "~@S3")
.parallel(5);
对于真正高级的案例,另请参阅:https ://stackoverflow.com/a/67224240/143475
推荐阅读
- ios - Why do App store connect operation errors ITMS-90685 and ITMS-90680 happen?
- sql-server - 如何使用托管标识(连接字符串中没有凭据)从 Azure 函数连接到 Azure SQL?
- html - 配置 prettier 以在 html 中保留空白喜欢
- flutter - Flutter - SliverList 中的滚动捕捉
- perl - MapServer - msLoadMap():正则表达式错误。MS_DEFAULT_MAPFILE_PATTERN 验证失败
- angular - 当 textArea onFocus 时未触发按钮 ClickEvent
- react-native - jumping problem in react native when adding items to the front
- c# - 输出对应的唯一元素
- c# - How to call RefreshTokenAsync every 24 hours with Quickbooks with Csharp.net when no one using the app
- php - How to pass strings from PHP via FFI to c / tensorflow