Ich benutze den OnDemand Service von http://saucelabs.com der absolut rockt. Unten ist mein Ant-Skript zum Ausführen meines JUnit-Tests gegen Sauce Selabs-Server.
Sie können die Attribute sysproperty
in der Junit-Task überspringen, wenn Sie keine Parameter an Ihren Test übergeben möchten. Rufen Sie die Parameter in Ihren Java-Testmethoden mit System.getProperty("...")
ab. Ich finde es praktisch, Plattform, Browser und Version aus dem Ant-Skript heraus zu spezifizieren und nicht in den Testfällen fest zu codieren.
<?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>
Meine Auswahl Layout ist
Test
|- build.xml
|- src
| | TestingStudieplads.java
|- selenium-2.24.1
| CHANGELOG
| selenium-java-2.24.1.jar
| libs
| dep1.jar
| dep2.jar
| dep3.jar
| ...