Как передать системные свойства -D при тестировании в Eclipse?

95

Я разрабатываю Eclipse в Windows, а код развертывается в Unix. Я получаю значения системных свойств с помощью System.getProperty ("key") ... Как передать это в Eclipse, чтобы мне не пришлось изменять код, и он работал в Eclipse для отладки?

Какие-либо предложения?

Деванг Камдар
источник

Ответы:

135

Выполнить -> Выполнить конфигурации, выбрать проект, вторая вкладка: «Аргументы». Верхнее поле предназначено для вашей программы, нижнее поле - для аргументов виртуальной машины, например -Dkey=value.

Бомба
источник
1
где это, если вы пытаетесь запустить приложение для Android?
user678392
почему я должен использовать "D" в качестве префикса?
Manticore
28
Если вы такой же толстый, как я, аргументы -D помещаются в нижнее поле для аргументов виртуальной машины , а не в верхнее поле для аргументов вашей программы. /
sigh
2
Верхнее поле предназначено для String[] argsпереданного mainметоду.
jaco0646
7
Есть ли способ установить это по умолчанию, чтобы вам не приходилось вручную вводить это повторно для многих тестов?
Стюарт,
44

Вы можете использовать java System.properties, чтобы использовать их из eclipse, вы можете:

  1. Добавьте -Dlabel="label_value"аргументы теста виртуальной машины Run Configurationследующим образом:

eclipse_vm_config

  1. Затем запустите тест:

    import org.junit.Test;
    import static org.junit.Assert.assertEquals;
    
    public class Main {
        @Test
        public void test(){
            System.out.println(System.getProperty("label"));
            assertEquals("label_value", System.getProperty("label"));
        }
    }
    
  2. Наконец, он должен пройти тест и вывести это в консоль:

    label_value
    
Madx
источник
13

Вы можете добавить аргументы командной строки в конфигурацию запуска. Просто отредактируйте конфигурацию запуска и добавьте -Dmyprop = value (или что-то еще) в поле аргументов виртуальной машины.

изб
источник
4
Если вы имели в виду «окно аргументов программы», когда сказали «поле аргументов командной строки» на вкладке «Аргументы» - не работает! Должен быть введен в поле «VM Arguments Box», как упомянуто выше Bombe.
Деванг Камдар
4

запустить конфигурацию -> аргументы -> аргументы vm

(также можно поместить в конфигурацию отладки в разделе Конфигурация отладки-> Аргументы-> Аргументы ВМ)

Гарри Хуанг
источник
1

Это будет работать для junit. для TestNG используйте следующую команду

-ea -Dmykey="value" -Dmykey2="value2"
Анируддха Гханекар
источник
0

Да, это способ:

Щелкните правой кнопкой мыши по своей программе, выберите запустить -> запустить конфигурацию, затем по аргументу vm.

-Denv=EnvironmentName -Dcucumber.options="--tags @ifThereisAnyTag"

Потом можно подать заявку и закрыть.

NiteshJain007
источник