I am running tests using TestNG, Java & Eclipse work-space. I can run tests in a number of ways. I can run a TestNG file, or I can run individual classes. If I run from an individual class, the parameters are not picked up from the TestNG.xml file. I may want to switch testings to a different URL. This form, given in Tutorials, does not work, & only produces errors.
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class ParameterizedTest1 {
@Test
@Parameters("myName")
public void parameterTest(String myName) {
System.out.println("Parameterized value is : " + myName);
}
}
This is from a Tutorial at https://www.tutorialspoint.com/testng/testng_parameterized_test.htm
Error says this: [Utils] [ERROR] [Error] org.testng.TestNGException: Parameter 'url' is required by @Test on method addProjectTask but has not been marked @Optional or defined in C:\Users\SStaple\AppData\Local\Temp\testng-eclipse-38561327\testng-customsuite.xml
*** I called my parameter url. i.e:
@Test(groups = { "all", "projects", "create", "simple" })
@Parameters("url")
public void addProjectTask(String url) {
System.out.println("Parameterized value is : " + url);
I don't want to have to re-code this every time I switch URL.
Testng.xml looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite allow-return-values="false" configfailurepolicy="skip"
data-provider-thread-count="10" group-by-instances="false" guice-stage="DEVELOPMENT"
junit="false" name="hardening-simple" parallel="none" preserve-order="true"
skipfailedinvocationcounts="false" thread-count="5">
<parameter name="browser" value="firefox" />
<parameter name="url" value="https://url/#/" />
<parameter name="printToFile" value="true" />
<parameter name="trace" value="false" />
<parameter name="opt" value="true" />
<parameter name="customer" value="Demo" />
<parameter name="network" value="NSG Designated Streets (Type 1/2)" />
<parameter name="buildNo" value="025" />
<parameter name="teamCity" value="false" />
<parameter name="retest" value="0" />
<parameter name="user" value="normal" />
<listeners>
<listener class-name="listeners.TestNGCustomReportListener" />
</listeners>
<test allow-return-values="false" group-by-instances="false"
junit="false" name="firefoxTest" preserve-order="true"
skipfailedinvocationcounts="false">
<parameter name="browser" value="firefox" />
<parameter name="url" value="https://url/#/" />
<parameter name="opt" value="true" />
<parameter name="user" value="normal" />
<groups>
<define name="simple">
<include name="simple" />
</define>
<run>
<include name="simple" />
<exclude name="not-implemented" />
</run>
</groups>
<classes>
Does anyone know the correct method?