How to pass parameter to maven test

17,463

Solution 1

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

Solution 2

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.

Share:
17,463
Victor Vidigal Ribeiro
Author by

Victor Vidigal Ribeiro

Updated on June 04, 2022

Comments

  • Victor Vidigal Ribeiro
    Victor Vidigal Ribeiro almost 2 years

    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 test" command.

    How could I pass the port by parameter? Something like "mvn test 8080".