您好我寫我的第一個Java應用程序,我已經有了一些測試用例(* .TC文件)我想直接通過這個腳本的應用程序:如何用Java編寫簡單的txt測試用例
for f in `ls *.tc`; do
echo "Current Testcase: $f"
x=${f%.*}
java Main < $x.tc > $x.out
if diff "$x.out" "$x.should"; then
echo "passed testcase $f"
let PASSED=PASSED+1
else
echo "failed testcase $f"
let FAILED=FAILED+1
fi
done
問題是我不能完全弄清楚爲什麼只要tc file
包含多行該應用程序發瘋。例如:quit.tc
包含
quit
和工作就像當我手動輸入「跳槽」,therfore測試用例通過。 然而,當我寫另一TC:quit2.tc
包含
lala
test
quit
第一命令後,應用程序退出(因爲readString功能似乎無效之後返回)。 這裏是負責讀取功能:
public String readString(){
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String answer = null;
try {
answer = br.readLine();
return answer;
}
catch(IOException ioe) {
System.out.println("IO Error");
}
return answer;
}
我不知道爲什麼,或者這個功能時,我重定向到應用程序,這似乎是問題返回null。你能幫忙,讓我可以得到的tc腳本工作? THX
密切OS資源這是您的_all_代碼?您似乎沒有在測試腳本中調用'readString()'方法......並且,每次調用方法時,您都不會通過創建新讀取器來進行任何操作 - 創建的開銷可能會降低以抵消使用緩衝的任何收益。並嘗試通過調試來運行它 - 因爲try-catch,如果遇到錯誤,您仍然可以返回null。 – 2011-12-23 16:37:29
從腳本的角度來看,當你的文件名中有空格時,「for循環」就會搞亂。在'* .tc'中使用''f並在變量周圍使用「」。 – 2011-12-23 16:40:39
謝謝Jaypal的提示。 – wpp 2011-12-23 18:15:55