I have One test suite running in two environment.
Sometimes, I would like to run tests in localhost:8080 and sometimes at localhost:8585.
Jenkins run the tests by \"mvn te
try this:
mvn -Dtest=testName -Dargline="-Dport=portValue"
and portValue will be either 8080 or 8585, and while you have a "port" variable declared in your test code.
After doing some research, I found the below code:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemProperties>
<property>
<suiteXmlFiles>
<suiteXmlFile>${testsuite}</suiteXmlFile>
</suiteXmlFiles>
</property>
</systemProperties>
</configuration>
</plugin>
Please run the maven command:
mvn test -Dtestsuite =yourxmlsuitepath
I add a plugin on maven pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemProperties>
<property>
<name>fileName</name>
<value>${fileName}</value>
</property>
</systemProperties>
</configuration>
</plugin>
And get the parameter in junit code with
String fileName = System.getProperty("fileName");
After, I run my tests with -DfileName argument
mvn clean test -DfileName="config-test.xml"
Now, I can put all configurations in xml file and load appropriate file with the corrects parameters.
mvn clean test -DfileName="config-test.xml"
or
mvn clean test -DfileName="config-homolog.xml"
I solved the problem with the tips from Sandra Sukarieh and http://syntx.io/how-to-pass-parameters-to-the-junit-tests-from-the-maven-surefire-plugin/
Thank you very much