Как запустить Android тесты инструментальные из Eclipse?

голоса
10

В настоящее время я бег инструментовок тестов из командной строки следующим образом:

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

Есть ли способ запустить их из Затмения (с автоматической установкой приложения)?

Задан 22/01/2009 в 07:31
источник пользователем
На других языках...                            


2 ответов

голоса
6

Я не был в состоянии определить , автоматическое развертывание в эмуляторе. Тем не менее, вы можете взять ту же самую команду «ADB оболочки» и создать внешнюю конфигурацию запуска. Я на этом блоге одной теме здесь . Запуск этого пути немного более понятно , когда вы также с помощью «-e отладки истинного» аргумент.

Тем не менее, я думаю , что я получил больше пробега из сценария оболочки Bash (если вы используете хорошую платформу для разработки):

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

Таким образом, когда я хочу проверить blah.package.FooTest мне нужно только помнить, чтобы набрать:

james@trex:~$ adbtest FooTest
Ответил 18/02/2009 d 05:20
источник пользователем

голоса
4

Я не знаю отличный способ для запуска тестов автоматически из Eclipse, но я соединил прямой вперед метод автоматического построения и развертывания тестов с помощью муравьев.

Мой проект организован следующим образом:

  1. Назовем корень корневой директории проекта
  2. Внутри у меня есть build.xml порожденной activityCreator сценарий в SDK.
  3. У меня есть второй проект, содержащий мои тесты, расположенный в корневой / тесты
    • Этот проект имеет собственный AndroidManifest.xml (см структуру Android Демос API в качестве примера)
    • Этот проект также имеет собственный build.xml

Для того, чтобы поддержать JUnit в корень / тесты / build.xml, вам нужно добавить путь к JUnit. Один из способов сделать это, чтобы добавить путь к компиляции, DEX, отладки и выпуска целей (выпуск опущено, но она нуждается в то же самое изменение, которое делает отладки). Кроме того, в цели компиляции мы включаем путь ../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>

Теперь мы можем построить оба проекта отдельно. Последним штрихом является добавление новой цели в корне / build.xml, что будет способствовать созданию и развертыванию проекта и испытаний и выполнения тестов. Для этого добавьте следующую цель корневой / 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>

После того, как все это на месте, запустить эмулятор и запустить «муравей испытания». Это будет создавать, развертывать и выполнять тесты в одной команде.

Ответил 09/03/2009 d 06:00
источник пользователем

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