指定单个 jar 的类路径

发布于 2024-11-16 17:36:12 字数 2269 浏览 1 评论 0原文

我试图设置 Selenium Grid,但没有使用 Selenium Grid 下载中提供的 ant 配置,而是继续使用我的 ant 配置。

对于不了解 Selenium Gird 的 ant 用户 - 它是一个 java 库,可以让 UI 测试分布在一个“yml”文件中指定的不同系统上。在这里,我可以启动一台集线器机器,然后它可以控制不同从机上的浏览器。

我正在使用的 Ant 配置 -

<target name="setClassPath">
    <path id="classpath_jars">
        <fileset dir="${lib.dir}" includes="*.jar"/>
    </path>
    <pathconvert pathsep=":" property="test.classpath"
        refid="classpath_jars" />
</target>

<target name="launch-hub" description="Launch Selenium Hub" depends="setClassPath">
    <java classname="com.thoughtworks.selenium.grid.hub.HubServer" 
        classpathref="classpath_jars" 
        fork="true" 
        failonerror="true">

        <sysproperty key="http.proxyHost" value="${http.proxyHost}" />
        <sysproperty key="http.proxyPort" value="${http.proxyPort}" />
        <sysproperty key="https.proxyHost" value="${https.proxyHost}" />
        <sysproperty key="https.proxyPort" value="${https.proxyPort}" />

    </java>
 </target>

现在,在使用此配置时,我的集线器始终以“selenium-grid-hub-standalone-1.0.8.jar”中提供的“yml”文件开头,而不是考虑“yml”文件我在我的项目根目录上定义了。

接下来,我更改了 ant 配置,如下所示,该配置在 Selenium Grid 发行版中可用 -

<path id="hub.classpath">
    <pathelement path="${basedir}/"/>
    <fileset dir="${basedir}/lib">
        <include name="selenium-grid-hub-standalone-1.0.8.jar"/>
    </fileset>
</path>

<target name="launch-hub" description="Launch Selenium Hub">
    <java classname="com.thoughtworks.selenium.grid.hub.HubServer"
          classpathref="hub.classpath"
          fork="true"
          failonerror="true" >

        <sysproperty key="http.proxyHost" value="${http.proxyHost}"/>
        <sysproperty key="http.proxyPort" value="${http.proxyPort}"/>
        <sysproperty key="https.proxyHost" value="${https.proxyHost}"/>
        <sysproperty key="https.proxyPort" value="${https.proxyPort}"/>
    </java>
</target>

现在,当我启动集线器时,它会考虑在我的项目根目录中定义的“yml”文件,而不是“selenium”中可用的文件-grid-hub-standalone-1.0.8.jar”文件。

我不是蚂蚁爱好者,但我发现这两种配置几乎相似,其中第一个配置依赖于目标,而其他配置则使用“pathid”。任何人都可以阐明这一点吗?

I was trying to setup Selenium Grid and instead of using ant configuration available with Selenium Grid download I continued using my ant configuration.

For ant users who are not aware of Selenium Gird - it is a java lib which lets UI tests be distributed on different system specified in one "yml" file. Herein I can start one hub machine and which in turn can ctrl browser on different slave machines.

Ant configuration which I was using -

<target name="setClassPath">
    <path id="classpath_jars">
        <fileset dir="${lib.dir}" includes="*.jar"/>
    </path>
    <pathconvert pathsep=":" property="test.classpath"
        refid="classpath_jars" />
</target>

<target name="launch-hub" description="Launch Selenium Hub" depends="setClassPath">
    <java classname="com.thoughtworks.selenium.grid.hub.HubServer" 
        classpathref="classpath_jars" 
        fork="true" 
        failonerror="true">

        <sysproperty key="http.proxyHost" value="${http.proxyHost}" />
        <sysproperty key="http.proxyPort" value="${http.proxyPort}" />
        <sysproperty key="https.proxyHost" value="${https.proxyHost}" />
        <sysproperty key="https.proxyPort" value="${https.proxyPort}" />

    </java>
 </target>

Now while using this configuration, my hub always starts with "yml" file which is available in "selenium-grid-hub-standalone-1.0.8.jar" instead of considering the "yml" file which I defined on my project root.

Following this I changed the ant configuration as following, which is available in Selenium Grid distribution -

<path id="hub.classpath">
    <pathelement path="${basedir}/"/>
    <fileset dir="${basedir}/lib">
        <include name="selenium-grid-hub-standalone-1.0.8.jar"/>
    </fileset>
</path>

<target name="launch-hub" description="Launch Selenium Hub">
    <java classname="com.thoughtworks.selenium.grid.hub.HubServer"
          classpathref="hub.classpath"
          fork="true"
          failonerror="true" >

        <sysproperty key="http.proxyHost" value="${http.proxyHost}"/>
        <sysproperty key="http.proxyPort" value="${http.proxyPort}"/>
        <sysproperty key="https.proxyHost" value="${https.proxyHost}"/>
        <sysproperty key="https.proxyPort" value="${https.proxyPort}"/>
    </java>
</target>

And now when I start the hub, it consider the "yml" file which is defined in my project root and not the one which is available in "selenium-grid-hub-standalone-1.0.8.jar" file.

I am no ant aficionado but I find both configuration almost similar, wherein first configuration has dependency on target while other uses the "pathid". Any one who could throw light on this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

淡淡離愁欲言轉身 2024-11-23 17:36:12

我认为区别在于第二个示例中的类路径包括您的项目根目录:

<pathelement path="${basedir}/"/>

而第一个示例中不包括。

I think the difference is that the classpath in the second example includes your project root dir:

<pathelement path="${basedir}/"/>

whereas the first one does not.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文