Как передать аргументы программы в Java для моего Fitnesse Fixture?

У меня есть прибор, которому нужно передать некоторые системные аргументы. Как я могу сделать то же самое. т.е. Java MyClass -Darg1=x -Darg2=y

как передать значения -Darg в мой тест?

@Dan. Плохо, что я упомянул аргументы командной строки. Что я действительно собираюсь сделать, так это передать системные свойства, как вы указали. У меня есть некоторые настройки, такие как Region(NA/EMEA и т. Д.),Environment(SIT/UAT) и т. Д., В зависимости от которых используются различные URL-адреса и т. Д. я должен составить тесты в Fitnesse, где я передаю значения для экрана теста из таблицы решений. Но я хочу быть в состоянии диктовать, что эти тесты должны выполняться при такой-то комбинации регион /env. У меня есть тест junit, который запускает воспроизведение Selenium, и я контролирую его вызов из IDE/Maven, передавая -Dregion и т. Д. С Fitnesse я хочу знать, как передать эти системные аргументы, чтобы мой Fixture при вызове имел доступ к этим свойства и запускает воспроизведение Selenium соответственно.

1 ответ

Чтобы передать переменные в FitNesse, вы можете установить переменную окружения. Например, запустите FitNesse из командной строки следующим образом:

set SUT=www.google.de
java -jar fitnesse.jar -p 8080

Вы можете использовать переменные окружения в FitNesse, как и другие переменные - '${SUT}' в тестовой таблице FitNesse будет заменен на www.google.de в приведенном выше примере.

Затем, чтобы получить значение SUT в тестовом приборе, вы можете добавить статический класс в тестовое приспособление следующим образом:

public class Environment {
    public static string SUT;
}

И где-то в вашем коде установки FitNesse установите переменную среды SUT:

!|script|Environment|
|SUT|${SUT}|

Затем Environment.SUT будет доступен в вашем коде Fixture.


Обновить:

Также см. Комментарий Дэна о том, как использовать системные переменные Java, запустив fitNesse с параметром -D.

Другие вопросы по тегам