通常,我们为了排除客户端的故障,需要遥控用户执行相应的检查来确认环境和安装无误。这一过程非常之繁琐而且容易误解。即使我们有一个问题FAQ列表,也需要许多专职的技术支持来搞定用户。所以我们想到能不能用程序的方法来写这个FAQ列表,用程序来检查客户端的程序并报告给我们检查结果。这就是本文第一个要点:用诊断测试来排除故障。我们首先编写诊断测试程序。
package userview;
public class selfTest{
public StringtestJavaVersion(){
Stringversion = System.getProperty("java.version");
if(version.startsWith("1.6")){return"ok";}
else
return "unok";
}
public static voidmain(String args[]){
selfTest st= new selfTest();
System.out.println(st.testJavaVersion());
}
}
上述程序,检查客户端的Java版本,如果版本为1.6开头,则本测试可以通过,否则不通过。上述代码编译生成可执行,下面编写测试包程序生成的按键发布程序,该脚本程序将测试打包打包,发送给客户后,客户可在本地执行之来检查本地程序的环境。
程序提交到svn服务器里,经过rbTest.bat脚本生成测试文件包userview_Test_version.rar,把这些内容解压到userview_version文件夹里,运行selfTest.bat文件即可。
selfTest.bat文件为:
@echo off
java -Xbootclasspath/a:vendor\lib\junit.jar;vendor\lib\sqljdbc4.jar-jar userview_Test.jar
pause
@echo off
rbTest.bat脚本从svn主干签出目录,建立分支并编译测试代码,重新打包为程序文件,结合manifest文件和selfTest.bat文件打包成测试文件rar。分发到客户处。rbTest脚本内容大体类似与rb2.bat,其详细为:
@echo off
cls
set version=%1
set name=userview
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
set filename=%name%_Test_%version%_%year%%month%%day%.rar
echo -----------------------------------------
echo %name% Test release branches
echo name:%name%
echo version:%version%
echo -----------------------------------------
echo 2.create branches
svn copy -m '' svn://192.168.195.54/%name%/trunksvn://192.168.195.54/%name%/branches/RB_Test_%version%
echo 3.chekcout branches
svn co svn://192.168.195.54/%name%/branches/RB_Test_%version% %name%_RB_Test_%version%
echo 4.check branches
cd %name%_RB_Test_%version%
javac -classpath vendor\lib\junit.jar test\userview\*.java
echo 4.1 make the jar file
cd test
jar -cmf manifest %name%_Test.jar userview
move %name%_Test.jar ..\..\%name%_Test.jar
cd..
cd..
echo 5.make the rar file
rar a %filename% selfTest.bat %name%_Test.jar
echo 7.mark release tags
svn copy -m ''svn://192.168.195.54/%name%/branches/RB_Test_%version%svn://192.168.195.54/%name%/tags/REL_Test_%version%
echo 8.send to QA
move %filename% ../%filename%
echo 9.clean
rd /s /q %name%_RB_Test_%version%
del %name%_Test.jar
@echo off
参考
4. Ant的主要任务的语法
5. Ant脚本的详细配置
6. Subversion综述