问候,
我已经完成了使用Selenium RC和Java开发一套测试,我正在尝试将它们与构建系统集成,以便我可以在一夜之间运行测试。流程如下:
java -jar overnightTests.jar
。我已经写了所有的文章,但触发器给了我麻烦。
这是我的代码:
try {
String cmd = "java";
String jArg = "-jar";
String program = "overnightTests.jar";
String aptUrl = "https://apt.qa6.spockmate.com/apt/" ;
String campaignManagerURL = "http://app01.dev02.sn.spockmate.com:8080/cm/" ;
String contractDatafile = "C:\\testdata\\MasterDataForSelenium.xls" ;
String adMapDataDir = "C:\\testdata\\AdMaps\\" ;
String creativeAssetsFile = "C:\\testdata\\CreativeAssets\\CreativeAssetsForSeleniumTests.csv";
String adminURL = "https://admin.qa6.spockmate.com/admin/";
String [] commands = new String[]{cmd, jArg, program, aptUrl, campaignManagerURL, contractDatafile, adMapDataDir, creativeAssetsFile, adminURL};
Process child = Runtime.getRuntime().exec(commands);
} catch (IOException e) {
System.out.println("Exception thrown while calling Runtime:");
System.out.println(e.getCause());
e.printStackTrace();
}
当执行“Runtime.getRuntime()。exec(commands)”行时,trigger.jar会挂起。如果我从DOS命令行或Eclipse运行应用程序并不重要。这是奇怪的部分:一旦我杀死trigger.jar应用程序(通过ctrl-c或Eclipse的停止按钮),我试图触发的overnightTests.jar应用程序将启动。每次运行应用程序时都会发生这种情况。这就好像不是启动了overnight_tests.jar,而是将工具放入队列中以“下一步”启动。我试过分配'Runtime.getRuntime()。exec(commands);'到Process变量并在Process上执行wait()并尝试完全忽略返回。结果总是一样的。
我的问题是:
任何帮助或建议都会让我感到非常高兴,并且更有可能让我完成这个项目并在月底去度假。
答案 0 :(得分:1)
一些建议:
答案 1 :(得分:1)
安装完成后,我对您启动Selenium测试套件的设置并不相信?
没有在CruiseControl中创建另一个每晚会触发的项目的原因是什么?
假设您的核心项目是XXX
,那么我会添加XXX_nightly
个测试。
此外,通过一些智能<veto>
,只有在核心项目处于正确状态时才能触发夜间测试。此设置允许您即使在营业时间内手动强制执行“夜间”测试。