Вы используете GherkinScenarioFactory
, который ожидает bdd в синтаксисе огурца. В gherkin Meta-data
не поддерживается, но поддерживается в qaf-bdd. Вы должны использовать com.qmetry.qaf.automation.step.client.text.BDDTestFactory
. Ваш bdd-файл, скажем, suite1.bdd, должен выглядеть ниже для работы с BDDTestFactory
.
SCENARIO : Custom Data provider Example
META-DATA: {"dataProvider":"my-custom-dp", "dataProviderClass":"com.qmetry.qaf.example.CustomDataProvider", "description":"Data driven test that uses custom data provider","groups":{"TestForTest","smoke"}}
Given I am on fruits and colors activity
When i select '${fruit}'
Then the color should be '${color}'
END
Если вы сравните с оригиналом, вы заметите, что @TestForTest
переместил метаданные, чтобы сделать ваш сценарий совместимым с qaf-bdd. Убедитесь, что ваш bdd-файл имеет расширение .bdd
для работы с BDDTestFactory
.
Ваш конфигурационный файл должен выглядеть следующим образом:
<suite name="QAF-Demo" verbose="0">
<test name="BDD Tests">
<parameter name="step.provider.pkg" value="com.qmetry.qaf.example.steps" />
<parameter name="scenario.file.loc" value="scenarios" />
<groups>
<run>
<include name="TestForTest"/>
</run>
</groups>
<classes>
<class name="com.qmetry.qaf.automation.step.client.text.BDDTestFactory" />
</classes>
</test>
</suite>
Несколько замечаний:
- вы пытаетесь добавить группы к шагам, помещая
@MetaData(value = "{'groups':['smoke']}")
в класс определения шага. Это не имеет никакого смысла. Группы должны быть назначены тестовому сценарию / сценарию, а не шагу (шагам).
- Более того, вам не нужно помещать
@QAFTestStepProvider
в класс определения шага, потому что вы используете @QAFTestStep
для пометки метода как шага.
Итак, ваш класс определения шага должен выглядеть следующим образом:
public class TestDataProdivider {
@QAFTestStep(description = "I am on fruits and colors activity")
public void test(){
System.out.println("I am on fruits and colors activity");
}
@QAFTestStep(description = "i select {fruit}")
public void testfruit(String fruit){
System.out.println(fruit);
}
@QAFTestStep(description = "the color should be {color}")
public void testcolor(String color){
System.out.println(color);
}
}