如何在查询字符串中设置Fitnesse变量

时间:2014-01-10 13:51:34

标签: fitnesse fitsharp

我目前正在使用FitSharp和dbfit的.net实现来设置Fitnesse。

我了解如何通过提交URL或命令行来触发测试或套件,例如:

java -jar fitnesse-standalone.jar -c "MyTest?test&format=text"

我无法弄清楚如何在此查询字符串中提交变量值。

因此,如果我有一个包含Sql语句的测试,该语句具有在Where子句中引用的Fitnesse变量,并且该变量的值是在兄弟静态页面中定义的,那么我希望能够运行此测试命令行并提交此变量的值,该值将覆盖静态页面中的值。类似的东西:

java -jar fitnesse-standalone.jar -c "MyTest?test&format=text&${myVar}=abc"

这有可能吗?

由于 标记

1 个答案:

答案 0 :(得分:0)

从命令行传递变量有两种方法,都涉及环境变量。

(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服务器,因此每个用户都有一个唯一的会话。)然后我通过定义相对于种子的id来检测我的测试,例如。

!define TestClient (MyTestClient_${SEED})

(2)将作用域的环境变量设置传递给实例化FitNesse运行器的java进程。这种技术只有不同的实现方式才能给出完全相同的结果:

java -DSEED=%RANDOM% -jar fitnesse-standalone.jar -p %FITNESSE_PORT% -e 0

这会在FitNesse中产生完全相同的结果,使您可以%SEED% ${SEED}环境变量访问。

有关详情,请参阅我在Simple-Talk.com上发布的使用FitNesse进行验收测试的七部分系列中的part 2