Как установить переменные Fitnesse в строке запроса
В настоящее время я настраиваю Fitnesse с FitSharp и реализацией.net dbfit.
Я понимаю, как запускать тесты или наборы из представления URL-адреса или из командной строки, например:
java -jar fitnesse-standalone.jar -c "MyTest?test&format=text"
Что я не могу понять, так это как передать значения переменных в этой строке запроса.
Итак, если у меня есть тест, содержащий оператор Sql, в котором есть переменная Fitnesse, на которую есть ссылка в предложении Where, и значение этой переменной определено на статической странице одного уровня, я хотел бы иметь возможность запустить этот тест из командной строки. и отправьте значение для этой переменной, которое переопределяет значение на статической странице. Что-то вроде:
java -jar fitnesse-standalone.jar -c "MyTest?test&format=text&${myVar}=abc"
Это вообще возможно?
Спасибо Марк
1 ответ
Есть два способа передачи переменных из командной строки, оба с использованием переменных среды.
(1) Определите переменную среды (или определите переменную, которая уже существует). Вы можете использовать системные переменные общего назначения (например, %TMP%
или же %HOMEPATH%
) или ваши собственные пользовательские переменные (например, %JAVA_HOME%
) или создайте свой. Мой короткий пусковой механизм Fitnesse (файл.CMD) такой:
set SEED=%RANDOM%
set FITNESSE_PORT=9999
java -jar fitnesse-standalone.jar -p %FITNESSE_PORT% -e 0
FITNESSE_PORT
переменная определяется только для использования в следующей строке. SEED
Переменная, однако, делает магию: она позволяет нескольким людям запускать один и тот же тест одновременно, генерируя уникальные значения для каждой сессии. (Это предполагает, что каждый пользователь запускает свой собственный сервер FitNesse, поэтому у каждого будет свой уникальный сеанс.) Затем я провожу тесты, определяя идентификаторы относительно начального числа, например
!define TestClient (MyTestClient_${SEED})
(2) Передайте настройку переменной окружения в пределах только java-процесса, который создает экземпляр FitNesse. Этот метод дает вам точно такие же результаты с другой реализацией:
java -DSEED=%RANDOM% -jar fitnesse-standalone.jar -p %FITNESSE_PORT% -e 0
Это дает точно такой же результат в FitNesse, предоставляя вам доступ к %SEED%
переменная среды как ${SEED}
,
Для получения дополнительной информации см. Часть 2 моей серии из семи статей о приемочном тестировании с FitNesse, опубликованной на Simple-Talk.com.