我们使用Jenkins将.NET Web应用程序与NAnt / NUnit持续集成以进行.NET测试。 Jenkins配置了9个从属服务器(所有这些服务器都是Windows Server 2003),它们运行许多构建以及自动化测试。
我们正在尝试设置js-test-driver来运行我们的JavaScript单元测试,而下面的NAnt任务在开发人员工作站本地运行良好。 Internet Explorer是我们唯一想要测试的浏览器,因为它是我们所有Web应用程序的唯一目标浏览器。
<target name="jsTests" >
<echo message="Running JavaScript tests..." />
<exec program="java.exe">
<arg line="-jar '${jstestdriver.dir}\JsTestDriver.jar'" />
<arg line="--config '${ui.webtests.dir}\JsTestDriver.conf'" />
<arg line="--port 9876"/>
<arg line="--browser 'C:\program files\internet explorer\iexplore.exe'"/>
<arg line="--verbose"/>
<arg line="--reset"/>
<arg line="--tests all"/>
<arg line="--testOutput '${results.jstestdriver.dir}'"/>
</exec>
</target>
我们在Jenkins遇到同样的问题,可能是因为:
js-test-driver wiki上的GettingStarted
页面说我们可以在与运行js-test-driver服务器不同的机器上运行浏览器:
在运行任何测试之前,您需要启动测试服务器 并捕获至少一个从属浏览器。服务器不必 驻留在测试运行器所在的机器上,以及浏览器 他们自己也可以在不同的机器上。
答案 0 :(得分:2)
我在100%的Windows设置中做过类似但没有的事情,但我想你在Windows上做类似的事情时不会有任何问题。
在我的情况下,我不得不在更多浏览器上进行测试:IE7,IE8,IE9,Chrome,Safari,Firefox 3.6和最新版本,所以,我所做的,是安装虚拟机,包含我需要的所有浏览器,以及在服务器模式下运行jstestdriver的另一台机器:
java -Xmx256m -jar JsTestDriver-1.3.4-a.jar --port 4224
所有带浏览器的虚拟机总是有一个指向该服务器的实例(http:// [jstd-server-ip]:4224 / capture)
在那些机器上,我创建了一个计划任务,每天早上重置浏览器的实例,因为我已经看到一些浏览器,特别是IE7,如果运行超过3天,往往会停止工作。
taskkill /f /IM iexplore.exe
iexplore.exe http://[jstd-server-ip]:4224/capture
这些机器和jstestdriver服务器一直在运行。我不确定你的情况是否可行。
然后,在应用程序上,我使用maven插件启动测试:http://code.google.com/p/jstd-maven-plugin/wiki/GettingStarted在我的情况下效果更好,但如果你不使用maven,我想在NAnt中应该是这样的:
<target name="jsTests" >
<echo message="Running JavaScript tests..." />
<exec program="java.exe">
<arg line="-jar '${jstestdriver.dir}\JsTestDriver.jar'" />
<arg line="--config '${ui.webtests.dir}\JsTestDriver.conf'" />
<arg line="--browser 'C:\program files\internet explorer\iexplore.exe'"/>
<arg line="--verbose"/>
<arg line="--reset"/>
<arg line="--tests all"/>
<arg line="--testOutput '${results.jstestdriver.dir}'"/>
</exec>
</target>
在 JsTestDriver.conf 中添加以下行:
server: http://[jstd-server-ip]:4224
这告诉jenkins执行的jstestdriver的客户端实例使用 http:// [jstd-server-ip]:4224 作为服务器。
希望这能帮到你!