2014-01-10 61 views
0

我目前正在使用FitSharp和dbfit的.net實現設置Fitnesse。如何在查詢字符串中設置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

有兩種方法可以在命令行中傳遞變量,既涉及到環境變量。 (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}

欲瞭解更多信息,請參閱我的七部分系列的part 2關於使用FitNesse的驗收測試發佈在Simple-Talk.com上。

相關問題