Подтвердить что ты не робот

Как передать входные данные из командной строки в тестовую программу junit maven

Я написал тест junit, чтобы добавить два числа. Мне нужно передать эти цифры из командной строки. Я запускаю этот тест junit из maven tool как

mvn -Dtest=AddNumbers

Моя тестовая программа выглядит так

int num1 = 1;
int num2 = 2;

@Test
public void addNos() {
  System.out.println((num1 + num2));
}

Как передать эти цифры из командной строки?

4b9b3361

Ответ 1

Передача чисел как системных свойств, таких как предложенная @artbristol, является хорошей идеей, но я обнаружил, что не всегда гарантировано, что эти свойства будут распространены на тест.

Чтобы проверить свойства системы для теста, используйте плагин maven surefire argLine параметр, например

mvn -Dtest=AddNumbers -DargLine="-Dnum1=1 -Dnum2=2"

Ответ 2

Чтобы передать входные данные из командной строки в тестовую программу junit maven, выполните следующие действия. Например, если вам нужно передать параметр имя_файла в unit test, выполненный Maven, выполните следующие шаги:

  • В параметре JUnit code передается через свойства System:

    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
        String fileName = System.getProperty("fileName");
        log.info("Reading config file : " + fileName);
    }
    
  • В pom.xml - укажите имя параметра в конфигурации плагина surefire и используйте нотацию {fileName}, чтобы заставить maven получить фактическое значение из свойств System

    <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>
    
  • В командной строке передайте параметр fileName параметрам системы JVM:

    mvn clean test -DfileName=my_file_name.txt
    

Ответ 3

Вы можете передать их в командной строке следующим образом

mvn -Dtest=AddNumbers -Dnum1=100

затем обращайтесь к ним в своем тесте с помощью

int num1=Integer.valueOf(System.getProperty("num1"));