您好我写我的第一个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