我目前正在使用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"
这有可能吗?
由于 标记
答案 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。