我们使用 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 服务器的机器不同的机器上运行浏览器:
在运行任何测试之前,您需要启动测试服务器并捕获至少一个从属浏览器。服务器不必驻留在测试运行器所在的机器上,浏览器本身也可以在不同的机器上。
- 有人在 Jenkins/Windows 设置上做过这个吗?
- 对于运行 js-test-driver 的可扩展设置,还有其他替代方案吗?