我有一个功能文件包含多个由 @Scenario 注释分隔的方案( ex:3 )。
有时,我不想执行除少数场景之外的所有场景。
Karate API / Cucumber框架中是否有可用的内置方法或关键字或解决方案?
示例要素文件:
Feature: Webservices Testing
I want to use this template for my feature file
Background:
* def APIHelperClass = Java.type('com.org.utilities.APIHelperClass')
############################SOAP REQUEST##############################################
@Scenario1
Scenario: Get Employees Details
* url 'http://101.154.121.135:1234//EmployeeSummary_PS?wsdl'
Given request read ('employees.xml')
When method post
Then status 200
* print 'Status Code :',responseStatus
############################SOAP REQUEST##############################################
@Scenario2
Scenario: Get Products Details
* url 'http://101.154.121.135:1234//ProductSummary_PS?wsdl'
Given request read ('getProductsRequest.xml')
When method post
Then status 200
我无法使用以下脚本控制Scenario执行。
选项1:
@RunWith(Cucumber.class)
@CucumberOptions(tags = {"@Scenario1", "@Scenario3"})
public class KarateClass {
}
选项2:
@RunWith(Karate.class)
@CucumberOptions(tags = {"@Scenario1", "@Scenario3"})
public class KarateClass {
}
上述选项不起作用,这意味着,在使用我自己的@Test方法执行功能文件时,它会执行 3 方案。
我在课堂上做了什么错,我不知道?
您能为此提供解决方案吗?
编辑:
在我的 @Test 方法中,我使用以下脚本执行功能文件。
Map<String, Object> response = CucumberRunner.runClasspathFeature("com/org/features/rci_api_testing.feature", args, true);
@CucumberOptions 使用了另一个类,即空手道等级
@RunWith(Cucumber.class)
@CucumberOptions(tags = {"@Scenario1", "@Scenario3"})
public class KarateClass {
}
谢谢,
答案 0 :(得分:0)
是的,请使用标签:https://github.com/intuit/karate#cucumber-tags
所以你可以从命令行:
mvn test -Dcucumber.options="--tags @Scenario1"
或者如果您使用的是JUnit跑步者:
@CucumberOptions(tags = {"@Scenario1", "@Scenario2"})