В настоящее время я работаю над фреймворком Cucumber + MVN + TestNG + selenium.У меня есть переменная "имя браузера", которую я определил в файле .properties, и я могу получить доступ к этой переменной в моих шагах огурца правильно.Но теперь я пытаюсь переопределить эту переменную из самого файла TestNG.xml как параметр типа
My TestNG.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Sample Cucumber TestNG Maven project" verbose="1" thread-count="1" parallel="methods" configfailurepolicy="continue">
<test name="Cucumber with TestNG">
<parameter name="browsername" value="Firefox"></parameter>
<classes>
<class name="testRunner.TestRunner">
<methods>
<include name="scenario"/>
</methods>
</class>
</classes>
</test>
</suite>
Мой Environment.properties ниже, чем япытаюсь переопределить, используя параметр TestNG
browsername=Chrome
browser.url=https://www.gmail.com
My Stepdefinition:
@Parameters("browsername")
@Given("Launch the application")
public void launch_the_application(String browsername) {
Properties property = prop.getProperty();
driver=DriverUtils.createDriver(driver, browsername);
driver.get(property.getProperty("browser.url"));
}
Мой файл TestRunner
package testRunner;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import cucumber.api.CucumberOptions;
import cucumber.api.testng.AbstractTestNGCucumberTests;
import cucumber.api.testng.CucumberFeatureWrapper;
import cucumber.api.testng.PickleEventWrapper;
import cucumber.api.testng.TestNGCucumberRunner;
@CucumberOptions(features=("src\\test\\resources\\features\\Navigation.feature"),
glue= {"com.homemadetesting.stepdefinition","utils"},
strict = true,
plugin= {"pretty","html:target/cucumber"},
tags= {"@testme"}
)
public class TestRunner {
private TestNGCucumberRunner testNGCucumberRunner;
@BeforeClass(alwaysRun = true)
public void setUpClass() throws Exception {
testNGCucumberRunner = new TestNGCucumberRunner(this.getClass());
}
@Test(groups = "Cucumber", description = "Runs Cucumber Feature", dataProvider = "scenarios")
public void scenario(PickleEventWrapper pickleEvent, CucumberFeatureWrapper cucumberFeature) throws Throwable {
testNGCucumberRunner.runScenario(pickleEvent.getPickleEvent());
}
@DataProvider
public Object[][] scenarios() {
return testNGCucumberRunner.provideScenarios();
}
@AfterClass(alwaysRun = true)
public void tearDownClass() throws Exception {
testNGCucumberRunner.finish();
}
}
Я получаю ошибку ниже:
[31mcucumber.runtime.CucumberException: Step [Launch the application] is defined with 1 parameters at 'com.homemadetesting.stepdefinition.ShopAssistStepdef.launch_the_application(String) in file:/C:/Users/XXXXX/eclipse/eclipse/JavaWorkspace/heb/target/test-classes/'.However, the gherkin step has 0 arguments.
Пожалуйста, посоветуйте, как мне справиться с этим