【发布时间】:2011-01-12 12:21:04
【问题描述】:
我写了一个测试脚本。我正在使用 Java、JUnit 和 Selenium RC。我想使用 ant 命令运行这个脚本。
如何编写一个 ant 任务并设置我的 build.xml 文件来运行这个新任务?
【问题讨论】:
我写了一个测试脚本。我正在使用 Java、JUnit 和 Selenium RC。我想使用 ant 命令运行这个脚本。
如何编写一个 ant 任务并设置我的 build.xml 文件来运行这个新任务?
【问题讨论】:
所有 selenium 测试用例只是 JUnit 测试用例的扩展。所以你需要做的就是在 ant 中运行一个 junit 测试用例。 ant 手册非常清楚地展示了如何做到这一点。
【讨论】:
我使用来自http://saucelabs.com 的 OnDemand 服务,这绝对是震撼人心的。下面是我的 Ant 脚本,用于针对 SauceLabs Selenium 服务器运行我的 JUnit 测试。
如果您不想将任何参数传递给您的测试,您可以跳过 junit 任务中的sysproperty 属性。使用System.getProperty("...") 检索Java 测试方法中的参数。我确实发现能够从 Ant 脚本中指定平台、浏览器和版本而不是在测试用例中硬编码它们很方便。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project name="TestingStudieplads" basedir="." default="main">
<property name="src.dir" value="src"/>
<property name="build.dir" value="build"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="main-class" value="TestingStudieplads"/>
<property name="lib.dir" value="selenium-2.24.1"/>
<property name="test.name" value="TestingStudieplads"/>
<path id="classpath">
<fileset dir="${lib.dir}" includes="**/*.jar"/>
<pathelement location="${classes.dir}" />
</path>
<target name="clean">
<delete dir="${build.dir}"/>
</target>
<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}" destdir="${classes.dir}" includeantruntime="false" classpathref="classpath"/>
</target>
<target name="main" depends="clean,run"/>
<target name="run" depends="compile">
<junit fork="yes" haltonfailure="yes">
<test name="${test.name}"/>
<sysproperty key="browser.name" value="Chrome"/>
<sysproperty key="browser.platform" value="Linux"/>
<sysproperty key="browser.version" value=""/>
<formatter type="plain" usefile="false"/>
<classpath refid="classpath"/>
</junit>
</target>
</project>
我的目录布局是
Test
|- build.xml
|- src
| | TestingStudieplads.java
|- selenium-2.24.1
| CHANGELOG
| selenium-java-2.24.1.jar
| libs
| dep1.jar
| dep2.jar
| dep3.jar
| ...
【讨论】:
首先您必须从 Apache ANT 下载 ANT。然后,您提取该 zip 文件并放置到您的驱动器中。您必须设置类路径并在类路径上提供 ANT 路径。之后,在当前项目下打开一个build.xml,在第76行写入jar文件位置并写入Suite name。转到命令提示符并键入 ant compile 和 ant run。
【讨论】: