0

我正在修改我们现有的 Selenium Grid 设置,以便它可以与 Selenium 2 一起使用。设置集线器和节点的过程似乎要简单得多,但是在 Ant 构建中运行它时遇到问题我以前的方式。

我已经阅读了 Selenium 2 Grid 上的wiki,并尝试相应地设置 Ant 构建。我的问题是第一个目标运行,启动集线器。然后,其他目标不运行,但构建完成。我试图在我自己的机器上运行这些,使用 Selenium 1 (RC) Junit 测试,TestNG 作为测试运行器。

我的目标如下:

<taskdef resource="testngtasks" classpath="testng-${testng.version}.jar" />

<target name="start-hub" description="Start the Selenium Grid hub">
   <java classpathref="runtime.classpath" 
      jar="${basedir}/selenium-server-standalone-${server.version}.jar" 
      fork="true"
      spawn="true">
      <arg value="-v" />
      <arg value="-role" />
      <arg value="hub" />
  </java>
</target>

<target name="start-node" 
   description="Start the Selenium Grid node"
   depends="start-hub">
   <java classpathref="runtime.classpath" 
      jar="${basedir}/selenium-server-standalone-${server.version}.jar"
      fork="true"
      spawn="true">
      <arg value="-role" />
      <arg value="rc" />
      <arg value="-hub" />
      <arg value="http://localhost:4444/grid/register" />
      <arg value="-port" />
      <arg value="5555" />
      <arg value="-browser" />
      <arg value="browserName=firefox,version=3.6,maxInstances=5,platform=WINDOWS"/>
  </java>
</target>

<target name="run-tests" description="Run the tests" depends="start-node">
   <testng classpathref="runtime.classpath"
      haltonfailure="true">
    <sysproperty key="java.security.policy" 
       file="${grid.location}/lib/testng.policy" />
    <arg value="testng.xml"/>
   </testng>
</target>

似乎 Ant 线程在第一个目标运行后就完成了。exec我查看了一种在新窗口中启动它们的方法,就像之前的网格一样,但除了任务之外我没有看到这样做的方法。我还尝试在exec任务中运行集线器并将节点作为java任务运行。这导致 ant 构建在start-hub目标之后停止执行,而不是完成。

有没有办法让我运行它,或者有更好的方法来完成它?

4

1 回答 1

1

看看 Mozilla 团队的做法:

https://github.com/mozilla/moz-grid-config

请注意,他们仍在使用 Grid 1 节点启动器,因为 Grid 2 在这方面是向后兼容的。但它应该让您了解如何在 ant 中处理这个问题。

于 2011-09-14T14:30:45.350 回答