Как передать аргументы программы в 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.