Har*_*til 8 continuous-integration hudson windows-server-2003 js-test-driver jenkins
我们使用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>
Run Code Online (Sandbox Code Playgroud)
我们在Jenkins遇到同样的问题,可能是因为:
该GettingStarted
页面JS测试驱动器维基说,我们可以在不同的机器比在JS测试驱动程序服务器运行上运行的浏览器:
在运行任何测试之前,您需要启动测试服务器并捕获至少一个从属浏览器.服务器不必驻留在测试运行器所在的机器上,并且浏览器本身也可以位于不同的机器上.
我已经做过类似的事情,但没有在 100% Windows 设置中进行,但我想您在 Windows 上做类似的事情不会有任何问题。
就我而言,我必须在更多浏览器上进行测试:IE7、IE8、IE9、Chrome、Safari、Firefox 3.6 和最新版本,因此,我所做的就是安装包含我需要的所有浏览器的虚拟机,以及另一个jstestdriver 在服务器模式下运行的机器:
java -Xmx256m -jar JsTestDriver-1.3.4-a.jar --port 4224
Run Code Online (Sandbox Code Playgroud)
所有带有浏览器的虚拟机始终有一个指向该服务器的实例 (http://[jstd-server-ip]:4224/capture)
在这些机器上,我创建了一个计划任务,每天早上都会重置浏览器的实例,因为我发现某些浏览器,特别是 IE7,如果运行超过 3 天,往往会停止工作。
taskkill /f /IM iexplore.exe
iexplore.exe http://[jstd-server-ip]:4224/capture
Run Code Online (Sandbox Code Playgroud)
这些机器和 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>
Run Code Online (Sandbox Code Playgroud)
在JsTestDriver.conf 的顶部添加以下行:
server: http://[jstd-server-ip]:4224
Run Code Online (Sandbox Code Playgroud)
这告诉jenkins 执行的 jstestdriver客户端实例使用http://[jstd-server-ip]:4224作为服务器。
希望这对您有帮助!
归档时间: |
|
查看次数: |
1796 次 |
最近记录: |