Jak spustit Android přístrojové testy z Eclipse?

hlasů
10

V současné době Běžím měřicí testy z příkazového řádku takto:

adb shell am instrument -w com.blah.blah/android.test.InstrumentationTestRunner

Existuje způsob, jak spustit z Eclipse (s automatickou instalaci aplikace)?

Položena 22/01/2009 v 07:31
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
6

Nebyl jsem schopen určit automatickou implementaci emulátoru. Nicméně, můžete si vzít ten stejný příkaz „adb shell“ a vytvořit externí nastavení startu. Jsem blogged o tomto stejné téma zde . Spuštění tímto způsobem je trochu více intuitivní, když jste také pomocí „-e ladění true“ argument.

Nicméně, myslím, že jsem se dostal více najetých kilometrů z skript bash shell (pokud používáte dobrou platformu pro vývoj):

function adbtest() {
    adb shell  am instrument -w -e class blah.package.$1 blah.package.test/android.test.InstrumentationTestRunner;
}

Tímto způsobem, když chci vyzkoušet blah.package.FooTest jen musím mít na paměti typu:

james@trex:~$ adbtest FooTest
Odpovězeno 18/02/2009 v 05:20
zdroj uživatelem

hlasů
4

Nevím o skvělý způsob, jak automaticky spouštět testy z Eclipse, ale já jsem dal dohromady přímočaré metodu automaticky budování a nasazení testů pomocí ant.

Můj projekt je organizován takto:

  1. Říkejme kořen kořenový adresář projektu
  2. Uvnitř mám build.xml generovaného activityCreator skriptu v SDK.
  3. Mám druhý projekt obsahující mých testů naleznete v hlavním adresáři / zkoušek
    • Tento projekt má vlastní AndroidManifest.xml (viz strukturu Android Demos API jako příklad)
    • Tento projekt má také svůj vlastní build.xml

Za účelem podpory JUnit v kořenovém / testy / build.xml, musíte přidat cestu k JUnit. Jedním ze způsobů, jak to udělat, je přidat cestu k překladu, ind, ladění a uvolnění cílů (uvolnění vynechán, ale potřebuje stejnou změnu, která ladění dělá). Také v cílové kompilace zařazujeme cestu ../src:

<!-- Compile this project's .java files into .class files. -->
<target name="compile" depends="dirs, resource-src, aidl">
    <javac encoding="ascii" target="1.5" debug="true" extdirs=""
            srcdir="src/:../src"
            destdir="${outdir-classes}"
            bootclasspath="${android-jar}">
        <classpath>
            <fileset dir="${external-libs}" includes="*.jar"/>
            <fileset file="${junit-path}"/>
        </classpath>
     </javac>
</target>

<!-- Convert this project's .class files into .dex files. -->
<target name="dex" depends="compile">
    <echo>Converting compiled files and external libraries into ${outdir}/${dex-file}...</echo>
    <apply executable="${dx}" failonerror="true" parallel="true">
        <arg value="--dex" />
        <arg value="--output=${intermediate-dex-ospath}" />
        <arg path="${outdir-classes-ospath}" />
        <fileset dir="${external-libs}" includes="*.jar"/>
        <fileset file="${junit-path}"/>
    </apply>
</target>

<!-- Package the application and sign it with a debug key.
     This is the default target when building. It is used for debug. -->
<target name="debug" depends="dex, package-res">
    <echo>Packaging ${out-debug-package}, and signing it with a debug key...</echo>
    <exec executable="${apk-builder}" failonerror="true">
        <arg value="${out-debug-package-ospath}" />
        <arg value="-z" />
        <arg value="${resources-package-ospath}" />
        <arg value="-f" />
        <arg value="${intermediate-dex-ospath}" />
        <arg value="-rf" />
        <arg value="${srcdir-ospath}" />
        <arg value="-rj" />
        <arg value="${external-libs-ospath}" />
        <arg value="-rj" />
        <arg value="${junit-path}" />
        <arg value="-nf" />
        <arg value="${native-libs-ospath}" />
    </exec>
</target>

Nyní můžeme postavit oba projekty odděleně. Konečný dotek je přidat nový cíl, ke kořeni / build.xml které budou vytvářet a nasazovat projekt a testy a spusťte testy. K tomu přidejte následující cíl kořenového / build.xml:

<target name="tests" depends="reinstall">
    <echo>Building and installing tests..</echo>
    <exec executable="ant" failonerror="true">
        <arg value="-f" />
        <arg value="tests/build.xml" />
        <arg value="reinstall"/>
    </exec>
    <mkdir dir="${log-dir}" />
    <exec executable="${adb}">
    <arg value="shell" />
    <arg value="am" />
    <arg value="instrument" />
    <arg value="-w" />
    <arg value="-e" />
    <arg value="class" />
    <arg value="org.yourproject.AllTests" />
    <arg value="org.yourproject.tests/android.test.InstrumentationTestRunner" />
    </exec>
</target>

Poté, co je to všechno na svém místě, spustit emulátor a spusťte „mravenců testy“. To bude vytvářet, implementovat a spouštět vaše testy do jednoho příkazu.

Odpovězeno 09/03/2009 v 06:00
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more